Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1128to1132
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 mit bestimmten Namen suchen/kopieren

Datei mit bestimmten Namen suchen/kopieren
Timothy
Hallo miteinander,
ich bin leider noch absoluter Neuling in der VBA-Programmierung.
Komme einfach nicht weiter......
Wie kann ich aus dem aktiven Sheet einen Namen (z.B. XYZ ) aus einer Zelle auslesen, diesen dann in einem Verzeichnis suchen, in welchem der Name als Datei gespeichert ist (z.B. C:\Tabellen\XYZ.mpr ), und diese Datei dann in ein gesondertes Verzeichnis kopieren (z.B. in D:\KopierteTabellen\XYZ.mpr) ?
Ich komm einfach nicht dahinter wie das gehen soll.....
Bitte um eure Hilfe. Besten Dank schon im Voraus!
MfG
Timothy

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Datei mit bestimmten Namen suchen/kopieren
18.01.2010 15:10:29
Josef
Hallo Timothy,
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

Gruß Sepp

Anzeige
AW: Datei mit bestimmten Namen suchen/kopieren
18.01.2010 15:59:33
Timothy
Hallo Sepp,
es funktioniert genauso wie ich es möchte! Vielen Dank, genial wenn es so schlaue Köpfe wie dich gibt!!!
Wenn ich jetzt noch in der Spalte alle Zellen von z.B. 3-8 abarbeiten/kopieren will (H3-H8), dann kann ich dies doch einfach mit einer Schleife machen, oder?!?
AW: Datei mit bestimmten Namen suchen/kopieren
18.01.2010 16:10:53
Josef
Hallo,
ja genau.
Sub copyFile()
  Dim objFSO As Object, rng As Range
  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
    For Each rng In Range("A1:A5") 'Bereich anpassen!
      strFileToCopy = rng '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
    Next
  End With
  
  Set objFSO = Nothing
  Set rng = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Datei mit bestimmten Namen suchen/kopieren
18.01.2010 17:03:56
Timothy
Super, so ähnlich habe ich es jetzt gemacht!
Klasse Sepp!
Hier bin ich wohl wirklich auf einen Experten gestoßen ;);)
Aber jetzt ist mir noch eines aufgefallen, was ich gerne als letztes beheben würde:
Ich habe z.B. in der Spalte A den Wert XYZ doppelt aufgelistet (also z.B. in Zeile 3 und Zeile 4).
Wenn ich jetzt das Makro laufen lasse, kopiert es mir die Datei XYZ.mpr nur einmal.
Ich möchte aber dass dann z.B. der Zweite Wert als XYZ_2.mpr gespeichert wird.
Vielen Dank!
I
AW: Datei mit bestimmten Namen suchen/kopieren
18.01.2010 17:53:15
Josef
Hallo Timothy,
bitte das nächste mal gleich mit der ganzen "Wahrheit" herausrücken.
Sub copyFile()
  Dim objFSO As Object, rng As Range
  Dim strFileToCopy, strNewFile As String, strOldPath As String, strNewPath As String
  Dim lngC As Long
  
  strOldPath = "E:\Temp\" 'Verzeichnis in dem die Datei liegt
  strNewPath = "E:\Temp\Test\" 'Verzeichnis in welches kopiert werden soll
  
  With ActiveSheet
    For Each rng In Range("A1:A5") 'Bereich anpassen!
      strFileToCopy = rng 'Zelle mit dem Namen
      strFileToCopy = strFileToCopy & ".mpr" 'Suffix anhängen
      lngC = 1
      If Dir(strOldPath & strFileToCopy, vbNormal) <> "" Then
        Do
          strNewFile = Left(strFileToCopy, InStr(1, strFileToCopy, ".") - 1) & _
            IIf(lngC > 1, "_" & CStr(lngC), "") & Mid(strFileToCopy, _
            InStrRev(strFileToCopy, "."))
          lngC = lngC + 1
        Loop While Dir(strNewPath & strNewFile, vbNormal) <> ""
        
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        objFSO.copyFile strOldPath & strFileToCopy, strNewPath & strNewFile
      End If
    Next
  End With
  
  Set objFSO = Nothing
  Set rng = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Datei mit bestimmten Namen suchen/kopieren
19.01.2010 09:51:14
Timothy
Hallo Sepp,
genial deine Lösung, auch wenn ich dein Programmcode in der Do-Schleife nicht ganz durchschaue.... ;-(
Hab ich leider erst später gesehen, dass ich zwei gleiche Werte in einer Spalte habe, also "Sorry" für die nicht ganz korrekte Fragestellung!
Vielen, vielen Dank!

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige