Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Text einer Zelle kopieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Text einer Zelle kopieren (3158 mal gelesen)
joblack
Mitglied


Sehen Sie sich das Profil von joblack an!   Senden Sie eine Private Message an joblack  Schreiben Sie einen Gästebucheintrag für joblack

Beiträge: 3
Registriert: 08.05.2011

erstellt am: 08. Mai. 2011 22:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

nach tagelanger Suche und immer noch ratlos, bitte ich um Hilfe.

Ich muss ständig aus einer Excelatei den Text in eine Andere Maske kopieren.

Die Exceldatei heisst Baustelle.

Entweder mit paste copy oder ganz einfach abschreiben. da aber bei paste copy mir nach einer halben Stunde das Handgelenk wehtut, schreibe ich lieber ab, aber dann schleichen sich viele Fehler ein.
Also dachte ich mir, warum nicht automtisch.

Ich dachte mir folgenden Ansatz.

Wenn die Exceldatei und das Fenster der anderen Maske genannt Micro1 offen ist.
Sollen ein paar Tabs im Micro1 ausgeführt werden um an der 1. Eingabestelle zu sein.
Das klappt auch.

Jetzt brauch ich Eure Hilfe

Jetzt soll automatisch, das was in Zelle A1 steht eingefügt werden.
Dann sollen wieder Tabs im Mirco Fenster ausgeführt werden und dann der Inhalt aus Zelle B1 eingefügt
werden.dann wiedr Tabs und dann der Inhalt von C1
Das ganze soll dann für 10 Zeilen gelten( Spalten a,B,C) da in der anderen Maske nur für 10 Platz ist, dann muss man dort die Seite wechseln.

Das heist,die Kopiererei soll dann stoppen und es soll eine Eingabeaufforderung kommen, das weiter kopiert werden soll.
Dann sollen die Zellen A1 bis C10 gelöscht werden so das die unteren nach oben Rutschen und das Programm soll wieder von Vorne anfangen.

Den kleinen Anfang den ich habe hab ich mal aufgeführt


Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshShell  = CreateObject("Wscript.Shell")
WshShell.AppActivate("Micro1")

'Start

'WScript.Sleep 1500
'WshShell.SendKeys("%s") ' Sende ein "Alt-S".
WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100

'An dieser Stelle des Programms soll der Text von Zelle A1 der Datei Baustelle kopiert werden

WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100

'An dieser Stelle des Programms soll der Text von Zelle B1 der Datei Baustelle kopiert werden

WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100


'An dieser Stelle des Programms soll der Text von Zelle C1 der Datei Baustelle kopiert werden

WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100
WshShell.SendKeys("{TAB}")
WScript.Sleep 100

'An dieser Stelle des Programms soll der Text von Zelle A2 der Datei Baustelle kopiert werden

'und so weiter und so weiter

'wenn bei C10 angekommen

'soll sich ein Fenster öffnen und um eingabe zum weiter kopieren kommen

'jetzt sollen die 10 Zeilen gelöscht werden und goto start

Ist das zu machen oder habt Ihr eine bessere idee?


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Comos User
Mitglied



Sehen Sie sich das Profil von Comos User an!   Senden Sie eine Private Message an Comos User  Schreiben Sie einen Gästebucheintrag für Comos User

Beiträge: 112
Registriert: 23.03.2010

erstellt am: 12. Mai. 2011 11:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für joblack 10 Unities + Antwort hilfreich

Hallo,

Zitat:
Ist das zu machen oder habt Ihr eine bessere idee?

Sendkeys ist ja noch schlimmer als Makrogenerator, und bei den vielen Sleep's würde ich wohl einschlafen.

Mal im Ernst, kopieren (egal wie) ist immer die schlechtere Variante. Abgesehen von der Arbeit die das verursacht und den Fehlern die dabei auftreten können sind danach die Daten danach doppelt vorhanden und Murphy weiß das sie dann bald nicht mehr übereinstimmen.

Wer oder was ist denn 'Micro 1'?
Ein Ansatz wäre diesen zB. über DDE auf die EXCEL Daten zugreifen zu lassen.
Ohne Kenntniss der Zielanwendung ist leider keine genauerer Lösungsweg möglich.

Gruß
Peter

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Samson53
Mitglied
Nur noch selten simulierend


Sehen Sie sich das Profil von Samson53 an!   Senden Sie eine Private Message an Samson53  Schreiben Sie einen Gästebucheintrag für Samson53

Beiträge: 119
Registriert: 18.02.2010

Plant Simulation 11
Office 2013

erstellt am: 12. Mai. 2011 14:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für joblack 10 Unities + Antwort hilfreich

Das ist doch mit VBA in Excel ganz einfach.

Schreibe dir ein paar Basics:
Function F5()
   AppActivate Appl
   DoEvents
   SendKeys "{F5}", True
End Function
oder
Function Eingabe(ByVal param As String)
   AppActivate Appl
   DoEvents
   SendKeys param
   Warten 2
End Function

'Positioniere den Cursor in der Excel-datei
Range("a1").select
'Benenne die Application
Appl = "Material ändern (Einstieg)" ' Dies ist der Name der Anwendung (TASKManager)
' Sende Inhalt an Anwendung
Eingabe(ActiveCell)

Bei weiteren Fragen schreib mir einfach

------------------
Gruß
Samson

[Diese Nachricht wurde von Samson53 am 12. Mai. 2011 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joblack
Mitglied


Sehen Sie sich das Profil von joblack an!   Senden Sie eine Private Message an joblack  Schreiben Sie einen Gästebucheintrag für joblack

Beiträge: 3
Registriert: 08.05.2011

erstellt am: 15. Mai. 2011 18:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
ich hatte die Hoffnung schon aufgegeben, das jemand antwortet.
Ich weis auch das der Ansatz eher schlecht als recht ist.
Jedoch habe ich absolut keine Ahnung von der Materie und so hatte ich wenigstens eine kleinen Erfolg.
Micro1, so nennt sich dann das Fenster, wenn ich die Anwendung gestartet habe. Die Anwedung ist sicherlich kein Programm was man so kennt. Es ist wohl für die Fa irgendwann mal geschrieben worden.
Auf jeden Fall klappt das mit dem kopieren und einfügen, deshalb ist mein Ansatz auch so, eben simple.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz