Werte in anderes Programm kopieren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Werte in anderes Programm kopieren
von: Barbara
Geschrieben am: 04.09.2015 18:07:59

Hallo
ich würde gerne Folgendes per Makro tun:
Die Werte A1 bis A10 in ein anderes Fenster eines anderen Programms so einfügen:
A1 in die Zwischenbalage
Das andere Programm aktivieren (ist ein offenes Fenster neben Excel)
STRG+V
STRG ohne was dazu (oder Enter)
kurze Pause
Dann A2 in die Zwischenbalage und das Ganze ochmals, bis alles rübergeschaufelt ist.
Doch zuerst muss irgendwie dieses offene Fenster bestimmt werden.
Würde mich über konkrete Vorschläge freuen.
LG,
Barbara

Bild

Betrifft: AW: Werte in anderes Programm kopieren
von: Sebastel
Geschrieben am: 04.09.2015 22:27:57
Hallo Barbara,
Du willst Daten aus Excel in ein "anderes Programm" übertragen und das per Makro.
Fragen dazu:
Was ist denn Dein "anderes Programm", ist es VBA-fähig?
Warum zeilenweise und nicht als Inhalt einer Markierung mehrerer Zeilen und Spalten?
Beschreibe doch einfach mal, was Du denn vorhast.
Gruß Sebastel

Bild

Betrifft: AW: Werte in anderes Programm kopieren
von: Barbara
Geschrieben am: 04.09.2015 22:54:14
Hallo Sebastel,
dieses andere Programm hat kein VBA oder so was, aber zehn Eingabefelder, wo ich jetzt händisch den Inhalt von A1 rein kopiere, dann mit einer bestimmten Taste in das nächste Eingabefeld gehe, B1 einfüge usw.
Dieser händische Vorgang soll eben automatisiert werden.
Habe was über sendKeys gelesen, aber mir fehlt es an Hintergrundwissen. Vor allem, wie man das andere Fenster aktivieren kann. Wahrscheinlich geht das sogar mit Strg+Tab. So wechselt man in Windows zum vorigen Fenster.
LG,
Barbara

Bild

Betrifft: AW: Werte in anderes Programm kopieren
von: JoWE
Geschrieben am: 05.09.2015 15:48:45
Hallo Barbara,
so ganz einfach ist es wirklich nicht, die aktiven Fenster abzufragen und dann Daten an ein externes und auch noch an das richtige Fenster zu senden. Hier zwei Lesetipps:
1. http://www.activevb.de/tutorials/tut_sendkeys/sendkeys.html
2. http://www.activevb.de/tipps/vb6tipps/tipp0123.html
Viel Erfolg wünsche ich Dir.
Ich lasse die Frage offen, evtl. hat ja Sebastel noch etwas beizutragen.
Gruß
Jochen

Bild

Betrifft: AW: Werte in anderes Programm kopieren
von: JoWE
Geschrieben am: 05.09.2015 15:51:35
So jetzt wirklich offen!
Hallo Barbara, 
so ganz einfach ist es wirklich nicht, die aktiven Fenster abzufragen und dann Daten an ein externes und auch noch an das richtige Fenster zu senden. Hier zwei Lesetipps:
1. http://www.activevb.de/tutorials/tut_sendkeys/sendkeys.html 
2. http://www.activevb.de/tipps/vb6tipps/tipp0123.html 
Viel Erfolg wünsche ich Dir.
Ich lasse die Frage offen, evtl. hat ja Sebastel noch etwas beizutragen.
Gruß
Jochen

Bild

Betrifft: AW: Werte in anderes Programm kopieren
von: Barbara
Geschrieben am: 05.09.2015 21:39:59
Hallo Jochen,
Sehr interessanter Link.
So wie es aussieht, komme ich damit weiter.
Muss erst alles ausprobieren.
Vielen Dank.
LG,
Barbara

Bild

Betrifft: AW: Danke für die Rückmeldung
von: JoWE
Geschrieben am: 06.09.2015 10:34:35


Bild

Betrifft: AW: Danke für die Rückmeldung
von: Barbara
Geschrieben am: 07.09.2015 20:56:22
hallo
komme jetzt doch nicht weiter.
Folgendes Programm öffnet den Calculator und lässt ihn ausrechnen:
1+2+3+ + +100=
(habe es im Internet gefunden)

Sub a()
Dim appID As Integer
Dim Ergebnis, I
'Starten des Windows-Calculators und Auffangen der Applikation-ID
appID = Shell("notepad.EXE", 1)
'Sicherstellen dass der Calculator den Fokus hat
Application.Wait (Time + TimeValue("00:00:01"))
AppActivate appID
'berechnen der Summe der Zahlen von 1 bis 100
For I = 1 To 100
    'send keys to add the values of I
    SendKeys I & "{+}", True
Next I
SendKeys ("100"), True
SendKeys "=", True
End Sub
Folgende Probleme:
Wie kann ich in der Schleife überprüfen, ob der Rechner noch da ist (zur Sicherheit)?
Leider ging es nicht, erst nachdem ich
Application.Wait (Time + TimeValue("00:00:01"))
eingefügt habe.
Leider muss ich danach auf meiner Tastatur danach immer den NumLock (Zehnertastatur aktivieren) einschalten.
LG,
Barbara

Bild

Betrifft: AW: Danke für die Rückmeldung
von: JoWE
Geschrieben am: 08.09.2015 07:25:33
Hi Barbara,
ein wenig Code und schon geht's. Kannst Du in der Schleife sooft aufrufen wie es Dir notwendig erscheint.
Code stammt von Stefan Onken:

'Im Deklarationsbereich
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
'In ein Modul
Sub FindeAnwendung()
If FindWindow(vbNullString, "Rechner") > 0 Then MsgBox "Anwendung läuft"
End Sub
Das Warten ist auch erforderlich; der Rechner muss ja erst mal korrekt "geladen" werden!
Gruß
Jochen

Bild

Betrifft: AW: Danke für die Rückmeldung
von: JoWE
Geschrieben am: 08.09.2015 07:31:14
Hi nochmal,
die Aktivierung des NumPads soll lt. "Jens aus Siegburg" (September 2012)
so funktionieren:

 ' zunächst die benötigte API-Funktion 
Public Declare Function GetKeyState Lib "user32" ( _ 
   ByVal nVirtKey As Long) As Integer 
   Private Declare Sub keybd_event Lib "user32" ( _ 
   ByVal bVk As Byte, _ 
   ByVal bScan As Byte, _ 
   ByVal dwFlags As Long, _ 
   ByVal dwExtraInfo As Long) 
   
Private Const VK_NUMLOCK = &H90 
Private Const KEYEVENTF_KEYUP = &H2 
Sub NumPress() 
 ' NUM-Lock aktivieren (falls deaktiviert) 
 If Not (GetKeyState(vbKeyNumlock) = 1) Then 
   keybd_event VK_NUMLOCK, 1, 0, 0 
   keybd_event VK_NUMLOCK, 1, KEYEVENTF_KEYUP, 0 
 End If 
End Sub 
Hab's nicht getestet. Hab's noch nie benötigt :-)
Gruß
Jochen

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Werte in anderes Programm kopieren"