Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1444to1448
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte in anderes Programm kopieren

Werte in anderes Programm kopieren
04.09.2015 18:07:59
Barbara
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

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte in anderes Programm kopieren
04.09.2015 22:27:57
Sebastel
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

AW: Werte in anderes Programm kopieren
04.09.2015 22:54:14
Barbara
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

Anzeige
AW: Werte in anderes Programm kopieren
05.09.2015 15:48:45
JoWE
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

Anzeige
AW: Werte in anderes Programm kopieren
05.09.2015 15:51:35
JoWE
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

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

Anzeige
AW: Danke für die Rückmeldung
06.09.2015 10:34:35
JoWE

AW: Danke für die Rückmeldung
07.09.2015 20:56:22
Barbara
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

Anzeige
AW: Danke für die Rückmeldung
08.09.2015 07:25:33
JoWE
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

Anzeige
AW: Danke für die Rückmeldung
08.09.2015 07:31:14
JoWE
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
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige