Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1456to1460
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

Hilfe bei Code (Speicherort auswählen)

Hilfe bei Code (Speicherort auswählen)
20.11.2015 11:10:36
Michael
Hallo,
ich habe folgenden Code im Netz gefunden, welcher mir die Möglichkeit bietet das aktive Fenster als Bitmap zu speichern (soll später als Email verschickt werden):
Public Sub prcSave_Picture_Active_Window()
Dim hWnd As Long
Dim udtRect As RECT
Sleep 3000
hWnd = GetForegroundWindow
GetWindowRect hWnd, udtRect
stdole.SavePicture hDCToPicture(GetDC(0&), udtRect.Left, udtRect.Top, _
udtRect.Right - udtRect.Left, udtRect.Bottom - udtRect.Top), _
"D:\Eigene Dateien\Screenshot.bmp"
End Sub 
Ich wollte euch VBA Profis fragen wie ich diesen Code anpassen müsste, so dass jedes mal gefragt wird wo abgespeichert werden soll?
Hier der gesamte Code:
http://www.office-loesung.de/ftopic208796_0_0_asc.php
Danke,
Michael

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei Code (Speicherort auswählen)
20.11.2015 11:28:03
Herbert
Hallo Michael,
so müsste es gehen:
   Dim sWorkBookName$, vFile As Variant
'* Dialog zum öffnen einer Datei
vFile = Application.GetOpenFilename
If vFile = False Then Exit Sub
Workbooks.Open vFile
sWorkBookName = Dir(vFile)
Servus

AW: Hilfe bei Code (Speicherort auswählen)
20.11.2015 11:37:55
Michael
Hallo Herbert,
leider ist der Code für mich ungeeignet.
Beim öffnen der Excel Datei wird diese automatisch geschützt. Der User bekommt nur eine Userform zu sehen wo er seine Eingaben machen kann. Mit einem Klick auf Add werden die Daten in Excel gespeichert. Das Bild was momentan erstellt wird ist nur ein Screenshot von der Userform (das Active Window) die zusätzlich noch per Email verschickt werden soll.
Ich denke man müsste bei diesme Teil des Codes ansetzen:
stdole.SavePicture hDCToPicture(GetDC(0&), udtRect.Left, udtRect.Top, _
udtRect.Right - udtRect.Left, udtRect.Bottom - udtRect.Top), _
"D:\Eigene Dateien\Screenshot.bmp" 
momentan ist ein fester Speicherort vorgegeben. Dieser müsste dynamisch anpassbar sein wo der User gefragt wird ob er die Datei zB auf dem Desktop abspeichern will.
Gruß
Michael

Anzeige
AW: Hilfe bei Code (Speicherort auswählen)
20.11.2015 11:40:34
Herbert
Hallo Michael,
wenn Du die gesuchte AM direkt öffnen willst, dann kannst Du es auch damit probieren:
Application.Dialogs(xlDialogFindFile).Show

Servus

AW: Hilfe bei Code (Speicherort auswählen)
20.11.2015 11:45:09
Michael
So kann ich anscheinend aber nur etwas öffnen, keine Möglichkeit zum abspeichern ersichtlich oder aber ich hab den Code falsch eingebaut :(

AW: Hilfe bei Code (Speicherort auswählen)
20.11.2015 12:01:07
Herbert
Sorry Michael,
aber ich habe Deine Frage nicht richtig gelesen. Du suchst ja etwas zum speichern und nicht zum öffnen! Wer lesen kann, ist echt im Vorteil! ;o)=)
Rudis Lösung ist sicher die korrekte!
Sorry noch mal!
Servus

Anzeige
AW: Hilfe bei Code (Speicherort auswählen)
20.11.2015 12:08:09
Michael
Danke trotzdem für deine Mühe!

AW: Hilfe bei Code (Speicherort auswählen)
20.11.2015 11:58:16
Rudi
Hallo,
Sub prcSave_Picture_Active_Window()
Dim sFile
Dim hWnd As Long
Dim udtRect As RECT
sFile = Application.GetSaveAsFilename _
(InitialFileName:=ActiveWorkbook.Path, _
filefilter:="Bitmaps,*.bmp")
If sFile  False Then
Sleep 3000
hWnd = GetForegroundWindow
GetWindowRect hWnd, udtRect
stdole.SavePicture hDCToPicture(GetDC(0&), udtRect.Left, udtRect.Top, _
udtRect.Right - udtRect.Left, udtRect.Bottom - udtRect.Top), _
sFile
End If
End Sub
Gruß
Rudi

AW: Hilfe bei Code (Speicherort auswählen)
20.11.2015 12:07:50
Michael
Auch Dir ein Dank Rudi,
dein Code funktioniert, leider bekomme ich ein Blanko Bild. Hab es mal angefügt. Keine Vorstellung warum dieses Ergebnis dabei rum kommt. Die Userform ist eigentlich komplett gefüllt mit zahlreichen TextBoxen.
Userbild
Kann es sein, dass Bitmap im Vergleich zu jpg unglaublich viel Speicher braucht?
Gruß
Michael

Anzeige
AW: Hilfe bei Code (Speicherort auswählen)
20.11.2015 12:11:57
Rudi
Hallo,
Keine Vorstellung warum dieses Ergebnis dabei rum kommt.
Ich auch nicht.
Kann es sein, dass Bitmap im Vergleich zu jpg unglaublich viel Speicher braucht?
ja. Bitmap ist kein komprimiertes Format.
Gruß
Rudi

AW: Hilfe bei Code (Speicherort auswählen)
20.11.2015 12:20:36
Michael
Rudi,
der Fehler liegt wohl daran, dass das Fenster mit der Auswahl des Speicherortes die Userform überlagert. Ziehe ich das Auswahlfenster auf den anderen Monitor und speichere dann, dann funktioniert es. Hast Du ne Idee wie man das umgehen könnte? Vielleicht in den Zwischenspeicher laden und dann das Auswahlfenster öffnen lassen?
Kann ich nachträglich den Code so anpassen das jpg anstatt bmp verwendet wird?
Gruß
Michael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige