Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
592to596
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
592to596
592to596
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SendKeys funktioniert von UF aus nicht

SendKeys funktioniert von UF aus nicht
01.04.2005 10:31:28
UF
Hallo zusammen,
nach langem Experimentieren und mit Infos aus dem netz habe ich es geschafft eine Prozedur zu erstellen womit man große Tabellen als jpg auf der Festplatte speichern kann ohnen den üblichen Verlust von Formatierungen, etc. beim übliche GIF Export per VBA. Die Tabelle ist als Shape mit dem Namen ("Picture 1") im aktiven Blatt sichtbar.
Im Grunde genommen übergebe ich die Aktionen via SendKeys an den Photoeditor. Das funktioniert auch soweit gut solange die Prozedur von einem Modul aus gestartet wird. Bin ich jedoch in einer UF und starte via CommandButton, dann scheint der Focus nicht mehr richtig zu funktionieren und das Bild wird nicht in den Photoeditor eingefügt.

Sub PhotoEditor()
On Error Resume Next
Application.DisplayAlerts = False
Dim appident As Integer
Dim l_returnpause As String
Dim quellpfad As String
quellpfad = ThisWorkbook.Path & "\Results\01"
ActiveSheet.Shapes("Picture 1").Select
ActiveSheet.Shapes("Picture 1").Copy
'Starten des Programms PhotoEditor und den Fokus darauf setzen
appident = Shell("C:\Programme\Gemeinsame Dateien\Microsoft Shared\PhotoEd\PHOTOED.EXE", 2)
AppActivate appident
'Als neues Bild einfügen im PhotoEditor
SendKeys "%Bf", True
SendKeys "{DOWN 5}", True
SendKeys "{ENTER}", True
AppActivate appident
'Abspeichern der eingeladenen Datei als jpg-Typ
SendKeys "%Du", True
SendKeys quellpfad, True
SendKeys "{ENTER}", True
AppActivate appident
l_returnpause = pause(5)
'PhotoEditor schliessen
SendKeys "%D", True
SendKeys "{up 1}", True
SendKeys "{ENTER}", True
End Sub


Function pause(wartesekunden As Integer) As String
'Dieser Funktion wird eine Wartezeit in Sekunden (Ganzzahl)
'angegeben.
Dim l_zeit As Double
Dim l_wartezeit As Double
Dim l_deltazeit As Double
l_zeit = CDbl(Time)
l_wartezeit = (1 / 86400) * wartesekunden '86400 = 24*3600
Do
l_deltazeit = Time - l_zeit
If l_deltazeit > l_wartezeit Then
Exit Do
End If
Loop
pause = "Pause beendet!"
End Function

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Problem gelöst aber weitere Frage
01.04.2005 11:03:10
Torsten
Hallo,
Problem ist nicht sauber gelöst indem ich am Anfang des Makros XL minimiere und am Ende wieder maximiere. Ich frage mich aber was passiert wenn während er Ausführung des Makros ein Notify aufleuchtet (z.B. EMail oder IT Mitteilung). Dann wird ja wieder der Focus vom Photoeditor genommen,oder?
Gruß,
Torsten
AW: Problem gelöst aber weitere Frage
01.04.2005 14:58:39
Bert
Hi,
wenn das eine professionelle Lösung sein soll, wirst du mit SendKeys nie vor
Überraschungen sicher sein. Es gibt Lösungen mit API-Funktionen, die wasserdicht
funktionieren, ist aber auch für VBA gut nicht ganz einfach.
mfg Bert
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige