Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zellen auslesen, in Ordnern suchen und kopieren

Betrifft: Zellen auslesen, in Ordnern suchen und kopieren von: Thomas
Geschrieben am: 01.08.2014 12:53:59

Hallo liebe Community,

folgendes Szenario möchte ich mit Hilfe von VBA Excel verwirklichen:

Ich habe ein Excel File mit einem Formular in das Seriennummern eingetragen werden. Das Formular hat 8 Zeilen und 8 Spalten. In jede Zelle wird eine 4-stellige Seriennummer eingetragen. Die Seriennummer wird manuell eingetragen durch Sichtprüfung. Bisher wurde immer manuell der dazu passende Prüfbericht in den Ordnern gesucht. Ich möchte nun das sobald ich alle SN eingetragen habe, die Excel Programmierung mir in den Ordnern das jeweilige txt. Dokument raussucht für jede einzelne Zelle und in einen seperaten Ordner kopiert. Der Name des Orderns kann der Zelleninhalt einer Zelle zu Beginn sein ("Lieferung 1" etwa).

Wäre super wenn mir jemand helfen könnte!

Besten Dank!

  

Betrifft: AW: Zellen auslesen, in Ordnern suchen und kopieren von: Tino
Geschrieben am: 01.08.2014 14:32:26

Hallo,
mal eine Version.

Sub Kopieren_()
Dim rngRange As Range
Dim sDir$

'Bereich 
Set rngRange = Tabelle2.Range("A2:H9")
'Pfad Quelle 
Const sPathQuelle$ = "G:\1 Forum\"
'Pfad Ziel 
Const sPathZiel$ = "G:\1 Forum\Neuer Ordner (4)\"

For Each rngRange In rngRange.Cells
    If rngRange.Value <> "" Then
        sDir = Dir$(sPathQuelle & rngRange.Value & "*.txt", vbNormal)
        If sDir <> "" Then
            FileCopy sPathQuelle & sDir, sPathZiel & sDir
        End If
    End If
Next rngRange

MsgBox "Fertig"
End Sub
Gruß Tino


  

Betrifft: AW: Zellen auslesen, in Ordnern suchen und kopieren von: Thomas
Geschrieben am: 01.08.2014 14:52:11

Vielen Dank! Also funktionieren tut es! Jedoch muss ich den Ordner in der er die Dateien speichert seblst anlegen. Geht das auch automatisiert das ich oben ein Feld habe und der Zelleninhalt wird mein Ordner.


  

Betrifft: AW: Zellen auslesen, in Ordnern suchen und kopieren von: Tino
Geschrieben am: 02.08.2014 09:51:35

Hallo,
müsste so funktionieren!

Private Declare Function apiCreateFullPath _
Lib "imagehlp.dll" Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long

Sub Kopieren_()
Dim rngRange As Range
Dim sDir$
Dim lngCreatePath&

'Bereich 
Set rngRange = Tabelle2.Range("A2:H9")
'Pfad Quelle 
Const sPathQuelle$ = "G:\1 Forum\"
'Pfad Ziel 
Const sPathZiel$ = "G:\1 Forum\Neuer Ordner (5)\"
'Ordner anlegen wenn nicht vorhanden 
lngCreatePath = apiCreateFullPath(Left$(sPathZiel, InStrRev(sPathZiel, "\")))

If lngCreatePath = 1 Then
    For Each rngRange In rngRange.Cells
        If rngRange.Value <> "" Then
            sDir = Dir$(sPathQuelle & rngRange.Value & "*.txt", vbNormal)
            If sDir <> "" Then
                FileCopy sPathQuelle & sDir, sPathZiel & sDir
            End If
        End If
    Next rngRange
    MsgBox "Fertig"
Else
    MsgBox "Ordner konnte nicht angelegt werden!", vbCritical
End If
End Sub
Gruß Tino


  

Betrifft: AW: Zellen auslesen, in Ordnern suchen und kopieren von: Thomas
Geschrieben am: 07.08.2014 09:06:03

Hallo Tino!

Vielen Dank erstmal für deine Hilfe.
Funktioniert einwandfrei jedoch hätt ich noch ein paar Dinge:

Ist es möglich den Pfad (Quelle und Ziel) manuell auswählen zu lassen, damit der Nutzer den Quellordner auswählen kann und sagen kann unter welchem Ordnernamen er wo speichern soll.

Vielen Dank


  

Betrifft: AW: Zellen auslesen, in Ordnern suchen und kopieren von: Thomas
Geschrieben am: 07.08.2014 11:02:32

Hallo!

Mir ist eine neue Idee gekommen:

Für die Quelldatei wäre es sinnvoll das der Benutzer nicht den Ordner selbst suchen müsste in dem er die .txt Dateien finden kann sondern wenn das Makro es automatisch machen könnte. In der Excel Tabelle gibt es zwei Nummer: "123456" und "A12". Diese Nummern setzen sich zusammen zum Ordner "123456_A12". Jetzt wäre es klasse wenn das Makro den Quellpfad bekommt und in der Liste der vielen Ordner anhand der zwei Nummern den richtigne findet.

Dannach soll wie gehabt nach der Eingabe der Seriennnummern er die Zellen abgleichen und in dem Ordner nach der .txt Datei suchen, kopieren in einen Ordner mit dem Namen der in einer Zelle zu Beginn steht und diesen speichern und am Ende eine Msg Box aufpoppen.

Die Msg Box soll foglenden Inhalt haben: 15 von 15 kopiert oder noch besser wenn er sagen könnte welche Dateien nicht gefunden wurden, wenn es dazu kommt.

Vielen vielen Dank


  

Betrifft: AW: Zellen auslesen, in Ordnern suchen und kopieren von: Thomas
Geschrieben am: 07.08.2014 11:02:49

Hallo!

Mir ist eine neue Idee gekommen:

Für die Quelldatei wäre es sinnvoll das der Benutzer nicht den Ordner selbst suchen müsste in dem er die .txt Dateien finden kann sondern wenn das Makro es automatisch machen könnte. In der Excel Tabelle gibt es zwei Nummer: "123456" und "A12". Diese Nummern setzen sich zusammen zum Ordner "123456_A12". Jetzt wäre es klasse wenn das Makro den Quellpfad bekommt und in der Liste der vielen Ordner anhand der zwei Nummern den richtigne findet.

Dannach soll wie gehabt nach der Eingabe der Seriennnummern er die Zellen abgleichen und in dem Ordner nach der .txt Datei suchen, kopieren in einen Ordner mit dem Namen der in einer Zelle zu Beginn steht und diesen speichern und am Ende eine Msg Box aufpoppen.

Die Msg Box soll foglenden Inhalt haben: 15 von 15 kopiert oder noch besser wenn er sagen könnte welche Dateien nicht gefunden wurden, wenn es dazu kommt.

Vielen vielen Dank


 

Beiträge aus den Excel-Beispielen zum Thema "Zellen auslesen, in Ordnern suchen und kopieren"