Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1488to1492
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

Datei im WinExplorer finden und verschieben

Datei im WinExplorer finden und verschieben
16.04.2016 15:38:01
Rainer
Guten Tag,
die Datei 'SamHilfe.pdf' soll in den Ordner 'D:\SamLibri' kopiert werden. Der Pfad von 'SamHilfe.pdf' ist unbekannt. Die Datei kann sich auf einem x-beliebigen Laufwerk befinden. Eine Prozedur soll nun den Windows-Explorer öffnen und den Anwender auffordern 'SamHilfe.pdf' auszuwählen. Das Kopieren in den Zielordner 'D:\SamLibri' soll die Prozedur erledigen. Kann mir bitte jemand bei der Lösung dieser Aufgabe helfen.
Liebe Grüße. Rainer.

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

Betreff
Datum
Anwender
Anzeige
AW: Datei im WinExplorer finden und verschieben
16.04.2016 15:58:28
Arthur
Hallo Rainer.
Mit der folgenden Zeile kannst du den Explorer öffnen und den Dateinamen auslesen. (Fast) komplette Lösungen findest du, wenn du hier im Forum nach "fileexplorer" suchst.
FileName = Application.GetOpenFilename("Microsoft Excel-Dateien (*.xls), *.xls")
Gruß, Arthur.

AW: Datei im WinExplorer finden und verschieben
16.04.2016 17:46:42
Rainer
Hallo Arthur,
danke für die Antwort. Leider kann ich 'fileexplorer' hier im Forum nicht finden. Inzwischen habe ich es geschafft, per Prozedur den Explorer zu öffnen und die Datei 'SamHilfe.pdf' auszuwählen. Jetzt möchte ich die ausgewählte Datei im Ordner 'D:\SamLibri' kopieren. Das aber klappt noch nicht weil ich mit der Deklaration nicht zurecht komme. Objekt erforderlich! Da es sich um eine PDF-Datei handelt komm ich mit Workbook-Objekt nicht weit. Auch die Datei As Object funktioniert nicht. Ich brauche noch mehr Hilfe.
Gruß Rainer.

Anzeige
AW: Datei im WinExplorer finden und verschieben
16.04.2016 20:23:10
Michael
Hi Rainer,
was hast Du denn? Pfad und Dateiname?
Dann nimm den VBA-Befehle filecopy.
Schöne Grüße,
Michael

AW: Datei im WinExplorer finden und verschieben
16.04.2016 21:22:45
Rainer
Hallo Michael,
jetzt hab ich die Lösung. Falls es jemand interessiert, folgender Code funktioniert. Falls jemand einen Fehler darin entdeckt bin ich über jeden Hinweis dankbar. Vielen Dank euch und gehabt euch wohl.
Gruß Rainer.
Sub fremdeDatei_verschieben()
Dim varDatei As Variant
Dim Quelle As String
Dim HilfeDatei As Variant
Dim fso As Object
varDatei = Application.GetOpenFilename()
If varDatei = False Then Exit Sub
Quelle = vbCrLf & varDatei
HilfeDatei = Mid(Quelle, InStrRev(Quelle, "\") + 1)
Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFile HilfeDatei, ThisWorkbook.Path & "\" & HilfeDatei
Set fso = Nothing
End Sub

Anzeige
AW: Datei im WinExplorer finden und verschieben
17.04.2016 16:16:50
Michael
Hi Rainer,
ich habe mir ein paar Sachen zu MoveFile angesehen: das scheint etwas tricky zu sein und sollte vielleicht mit einer Fehlerabfangroutine gekoppelt werden.
Allerdings ist mir erst jetzt ein Widerspruch in der Fragestellung aufgefallen: im Titel steht "verschieben", im Text "kopieren"...
Was ich an Deinem Code nicht verstehe, ist der Umweg über Quelle und da ganz besonders das vbCrLf - beim nächsten Befehl wird sowieso nur der Teil rechts übernommen, so what?
Da sollte eine Zeile genügen:
HilfeDatei = Mid(varDatei, InStrRev(varDatei, "\") + 1)
Schöne Grüße,
Michael

Anzeige
AW: Datei im WinExplorer finden und verschieben
18.04.2016 18:32:19
Rainer
Hallo Michael,
inzwischen habe ich mich auch noch mal intensiv mit der Sache beschäftigt.
1. Im vorliegenden Fall ist es zwar egal, ob die fremde Datei verschoben oder kopiert wird. Kopieren ist aber ideal.
2. Ja, du hast Recht. Die Variable "Quelle" ist überflüssig.
3. Deine Bedenken, dass "MoveFile" nicht stabil laufen könnte habe ich als Tipp aufgenommen und nach einer anderen Lösung gesucht. Beigefügter Code läuft bei mir perfekt.
Und ganz herzlichen Dank für deine Mitarbeit.
Liebe Grüße
Rainer.
Sub fremdeDatei_SaveAs()
Dim varDatei As Variant
Dim HilfeDatei As String
varDatei = Application.GetOpenFilename()
If varDatei = False Then Exit Sub
HilfeDatei = Mid(varDatei, InStrRev(varDatei, "\") + 1)
FileCopy varDatei, ThisWorkbook.Path & "\" & HilfeDatei
End Sub

Anzeige
Sehr schön! Noch ne Kleinigkeit
18.04.2016 19:18:49
Michael
Hi Rainer,
na, der Code sieht doch klasse aus: nur ein paar Zeilen, die tun, was sie sollen.
Daß der thisworkbook.path vorhanden ist, sollte man meinen (es sei denn, es handelt sich um eine neue, noch nicht gespeicherte Datei).
Grundsätzlich kann man erzwingen, daß ein Verzeichnis angelegt wird, mit API:
Declare Function MakePath Lib "imagehlp.dll" Alias _
"MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long
grad mal wieder hier gesehen bei:
https://www.herber.de/forum/messages/1488666.html
Einfacher geht ein "Dir" im Vorfeld:
Sub test()
Dim pfad As String
pfad = "c:\irgendeinPfad"
If Dir(pfad & "\*.*") = "" Then MsgBox "Fehlerbehandlung": Exit Sub
End Sub
Das nur am Rande.
Liebe Grüße zurück,
Michael

Anzeige
AW: Sehr schön! Noch ne Kleinigkeit
18.04.2016 23:47:01
Rainer
Hi Michael,
die entsprechende Prozedur beginnt damit, im Ordner von ThisWorkbook nach der erforderlichen Hilfedatei zu suchen. Endet die Suche mit negativem Ergebnis wird der Benutzer aufgefordert, zu verraten wo denn die Hilfedatei wohnt. Mehr möchte ich vom Benutzer nicht verlangen. Den Rest soll eben die Prozedur erledigen - nämlich die Hilfedatei in den Ordner zu kopieren in dem sich ThisWorkbook befindet. Und das klappt ja jetzt "Juhuu!"
Aber vielen Dank für die zusätzliche Info. Da mir das Programmieren sehr viel Spaß macht, sauge ich natürlich jeden Hinweis gierig auf. Und sicher war das auch nicht meine letzte Frage an das beste Forum der Welt. Gehab dich Wohl!!
Liebe Grüße
Rainer.

Anzeige
Das hört man gerne...
19.04.2016 16:29:38
Michael
Hi Rainer,
derweil es mir ganz genau so geht, sowohl mit dem Programmieren als auch mit diesem Forum: das flutscht einfach!
LG & happy exceling,
Michael

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige