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

Dateiname - Suchkriterien anpassen in VB

Dateiname - Suchkriterien anpassen in VB
13.10.2021 13:40:49
Thomas
Hallo,
anbei der Code Schnippsel von Sepp aus dem Forum:

Sub copyFile()
Dim objFSO As Object
Dim strFileToCopy, strOldPath As String, strNewPath As String
strOldPath = "E:\Temp\" 'Verzeichnis in dem die Datei liegt
strNewPath = "E:\Temp\Test\" 'Verzeichnis in welches kopiert werden soll
With ActiveSheet
strFileToCopy = .Range("A1") 'Zelle mit dem Namen
strFileToCopy = strFileToCopy & ".mpr" 'Suffix anhängen
If Dir(strOldPath & strFileToCopy, vbNormal)  "" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.copyFile strOldPath & strFileToCopy, strNewPath & strFileToCopy
End If
End With
Set objFSO = Nothing
End Sub

Jetzt ist es so, dass die Dateiname nicht unbedingt 100 % mit dem Wert in A1 übereinstimmt, da hinter der Bezeichnung noch Sonderzeichen _, -% sind.
In Excel gibt es ja die Formel: If Left(Range("A1").Value, 1) = "A" Then 'wenn genau das drinsteht
Hat man das auch in VBA? Meinet wegen sucht mir Werte "*" & A1 "*" .
Vielen Dank für eure Hilfe.

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiname - Suchkriterien anpassen in VB
13.10.2021 14:06:01
UweD
Hallo
versuch es mal so

Sub copyFile()
Dim objFSO As Object, strDatei As String
Dim strFileToCopy, strOldPath As String, strNewPath As String
strOldPath = "E:\Temp\" 'Verzeichnis in dem die Datei liegt
strNewPath = "E:\Temp\Test\" 'Verzeichnis in welches kopiert werden soll
With ActiveSheet
strFileToCopy = .Range("A1") & "*" 'Zelle mit dem Namen
strFileToCopy = strFileToCopy & ".mpr" 'Suffix anhängen
strDatei = Dir(strOldPath & strFileToCopy, vbNormal)
If strDatei  "" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.copyFile strOldPath & strDatei, strNewPath & strDatei
End If
End With
Set objFSO = Nothing
End Sub
LG UweD
Anzeige
AW: Dateiname - Suchkriterien anpassen in VB
13.10.2021 14:53:12
thomas
Vielen Dank für die Rückmeldung,
leider führt bei
strFiletoCopy = rng & "*" nicht zum Ergebnis.
Er interpretiert das *als String.
In A1 steht: Test1
Die PDF Datei im Folder heißt Test1_vers
Eigentlich müsste der VBA durch Test1* das Test1_vers finden.
AW: Dateiname - Suchkriterien anpassen in VB
13.10.2021 15:10:15
UweD
Hallo
bei mir klappt es wie gewollt.
&GT&GT Er interpretiert das *als String.
Ist ja auch Einer
Eins kannst du noch versuchen:

'anstelle
strFileToCopy = .Range("A1") & "*" 'Zelle mit dem Namen
strFileToCopy = strFileToCopy & ".mpr" 'Suffix anhängen
'nimm
strFileToCopy = .Range("A1")  'Zelle mit dem Namen
strFileToCopy = strFileToCopy & "*.mpr" 'Suffix anhängen
LG UweD
Anzeige
AW: Dateiname - Suchkriterien anpassen in VB
13.10.2021 15:16:35
volti
Hallo Thomas,
Uwes Vorschlag ist absolut korrekt.
Knackpunkt hierbei ist die Dir-Funktion, die über das Sternchen den ersten oder einzig passenden Dateinamen zurückgibt, den man dann zum Kopieren verwenden kann.
Der Einsatz einer weiteren Variablen ist vielleicht entbehrlich. So klappt es bei mir...
Code:

[Cc]

Sub copyFile() Dim objFSO As Object Dim strFileToCopy, strOldPath As String, strNewPath As String strOldPath = "E:&bsol;Temp&bsol;" 'Verzeichnis in dem die Datei liegt strNewPath = "E:&bsol;Temp&bsol;Test&bsol;" 'Verzeichnis in welches kopiert werden soll With ActiveSheet strFileToCopy = .Range("A1") & "*" 'Zelle mit dem Namen strFileToCopy = strFileToCopy & ".mpr" 'Suffix anhängen strFileToCopy = Dir(strOldPath & strFileToCopy, vbNormal) If strFileToCopy <> "" Then Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.copyFile strOldPath & strFileToCopy, strNewPath & strDatei End If End With Set objFSO = Nothing End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Dateiname - Suchkriterien anpassen in VB
14.10.2021 10:55:24
thomas
Hallo Karl-Heinz, was steht genau bei der in A1?
Und wie heißt die Testdatei mit der du das getestet hast?
Weil bei mir steht in A1: "test1"
Die Datei lautet hier test1_ (mit unterstrich).
AW: Dateiname - Suchkriterien anpassen in VB
14.10.2021 12:22:53
UweD
Hallo
2 Leute haben dir nun schon gesagt, dass der Code richtig ist.
(Voltis Code ist ja fast identisch mit Meinem)
Wenn im aktiven Sheet in A1 "test1 steht und in E:\Temp\ eine Datei mit dem Namen test1_ oder sonst Eine, die mit test1 beginnt,
und die Endung ".mpr" hat, dann wird die kopiert.
Kann es sein, dass du dich auf dem falschen sheet befindest, wenn du das Makro startest?
lass dir das Gelesenen mal ausgeben

strFileToCopy = .Range("A1") & "*" 'Zelle mit dem Namen
msgbox strFileToCopy
strFileToCopy = strFileToCopy & ".mpr" 'Suffix anhängen
msgbox strFileToCopy
strFileToCopy = Dir(strOldPath & strFileToCopy, vbNormal)
msgbox strFileToCopy
LG UweD
Anzeige
AW: Dateiname - Suchkriterien anpassen in VB
14.10.2021 13:56:16
thomas
Hallo Uwe,
nach der Zeile: strFileToCopy = Dir(strOldPath & strFileToCopy, vbNormal)
ist die Message: MsgBox strFileToCopy
ist leer. das verstehe ich nichtso ganz, weil ich in A1: test1
und PDF Ordner: test1_
Danke euch für die Hilfe!
AW: Dateiname - Suchkriterien anpassen in VB
14.10.2021 14:12:25
UweD
Hallo
dann gibt es dort keine entsprechenden Datei nach diesem Muster
1)
Du schreibst was von PDF aber die Suchendung ist .mpr
Liegt es daran?
2)
Hast du ggf. Einstellungen im Windowsexplorer eingestellt, die dir nicht den ganzen Dateinamen anzeigen.
Userbild
3)
Oder hat die Datei Leerzeichen vorne im Namen?
4) ?
LG UweD
Anzeige
AW: Dateiname - Suchkriterien anpassen in VB
14.10.2021 14:28:11
thomas
Also ich habe MsgBox OldPath den Pfad ausgeben, es wird eher als C:\Pfad\test1*.pdf ausgelesen.
Das heißt er sucht nach test1*, interpretiert das Sternchen wohl nicht als Platzhalter?
ja, die Dokumente sind alle als PDF abgespeichert. Sorry, mpr ist noch ein Kopierfehler, müsste aber bei jedem gleich funktionieren.
With ActiveSheet
strFileToCopy = .Range("A1") & "*" 'Zelle mit dem Namen
MsgBox strFileToCopy
strFileToCopy = strFileToCopy & ".pdf" 'Suffix anhängen
MsgBox strFileToCopy
Set objFSO = CreateObject("Scripting.FileSystemObject")
OldPath = objFSO.BuildPath(strOldPath, strFileToCopy)
MsgBox OldPath
If objFSO.FileExists(OldPath) Then
objFSO.copyFile OldPath, objFSO.BuildPath(strNewPath, strFileToCopy)
End If
End With
Set objFSO = Nothing

Anzeige
AW: Dateiname - Suchkriterien anpassen in VB
14.10.2021 14:39:20
UweD
Hallo
Auf einmal schreibst du Laufwerk C:\Pfad\
In deinem ersten Beitrag was es E:\Temp\
ich bin jetzt raus...
LG UweD
AW: Dateiname - Suchkriterien anpassen in VB
14.10.2021 15:35:11
thomas
sorry Uwe, ja, hab noch den Pfad geändert, weil könnte ja sein, dass er nicht auf das USB-Laufwerk zugreifen kann. Hab das jetzt auf C: geschoben.
Die Frage ist:
C:\Pfad\test1*
warum findet VBA nicht diePDF im Ordner? Kannst du vielleicht ein Example als .zip hochladen, das würde mir mehr helfen, das Problem zu verstehen.
AW: Dateiname - Suchkriterien anpassen in VB
14.10.2021 15:32:14
thomas
Also ich habe MsgBox OldPath den Pfad ausgeben, es wird eher als C:\Pfad\test1*.pdf ausgelesen.
Das heißt er sucht nach test1*, interpretiert das Sternchen wohl nicht als Platzhalter?
ja, die Dokumente sind alle als PDF abgespeichert. Sorry, mpr ist noch ein Kopierfehler, müsste aber bei jedem gleich funktionieren.
With ActiveSheet
strFileToCopy = .Range("A1") & "*" 'Zelle mit dem Namen
MsgBox strFileToCopy
strFileToCopy = strFileToCopy & ".pdf" 'Suffix anhängen
MsgBox strFileToCopy
Set objFSO = CreateObject("Scripting.FileSystemObject")
OldPath = objFSO.BuildPath(strOldPath, strFileToCopy)
MsgBox OldPath
If objFSO.FileExists(OldPath) Then
objFSO.copyFile OldPath, objFSO.BuildPath(strNewPath, strFileToCopy)
End If
End With
Set objFSO = Nothing

Anzeige
AW: Dateiname - Suchkriterien anpassen in VB
14.10.2021 15:57:43
volti
Hallo,
in dem hier gezeigten Code ist ja gar kein Dir vorhanden, folglich wird auch das Sternchen nicht ersetzt und keine Datei gefunden.
Die Falschangabe ".mpr" war für das Nichtfunktionieren verantwortlich und hat m.E. nix mit dem Pfad zu tun.
Hier ein letzter Versuch:
Code:

[Cc]

Sub copyFile() Dim objFSO As Object Dim strFileToCopy, strOldPath As String, strNewPath As String strOldPath = "E:&bsol;Temp&bsol;" ' Verzeichnis in dem die Datei liegt strNewPath = "E:&bsol;Temp&bsol;Test&bsol;" ' Verzeichnis in welches kopiert werden soll With ActiveSheet strFileToCopy = .Range("A1").Value & "*.pdf" 'Zelle mit Namen und Suffix strFileToCopy = Dir(strOldPath & strFileToCopy, vbNormal) If strFileToCopy <> "" Then Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.copyFile strOldPath & strFileToCopy, strNewPath & strDatei End If End With Set objFSO = Nothing End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Dateiname - Suchkriterien anpassen in VB
14.10.2021 16:08:31
volti
Ups,
nimm dies...
Code:

[Cc]

Sub copyFile() Dim objFSO As Object Dim strFileToCopy, strOldPath As String, strNewPath As String strOldPath = "E:&bsol;Temp&bsol;" ' Verzeichnis in dem die Datei liegt strNewPath = "E:&bsol;Temp&bsol;Test&bsol;" ' Verzeichnis in welches kopiert werden soll With ActiveSheet strFileToCopy = .Range("A1").Value & "*.pdf" 'Zelle mit Namen und Suufix strFileToCopy = Dir(strOldPath & strFileToCopy, vbNormal) If strFileToCopy <> "" Then Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.copyFile strOldPath & strFileToCopy, strNewPath & strFileToCopy End If End With Set objFSO = Nothing End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Dateiname - Suchkriterien anpassen in VB
18.10.2021 11:45:00
thomas
Danke für eure Hilfe.
Ich verstehe nicht, warum die Zeile hier übersprungen wird:

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.copyFile strOldPath & strFileToCopy, strNewPath & strFileToCopy
Nutze O365. Liegt es vielleicht daran?
test1d.pdf sollte man eigentlich finden können.
AW: Dateiname - Suchkriterien anpassen in VB
18.10.2021 11:47:15
thomas
Vielleicht würde es mir helfen, wenn du mir eine gezippte Datei hier anhängen könntest, vielleicht liegt es an dem Wert in A1 oder an der PDF Datei. Besten Dank.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige