Microsoft Excel

Herbers Excel/VBA-Archiv

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

Upload Workbooks auf SharedDrive

Betrifft: Upload Workbooks auf SharedDrive von: Norbert
Geschrieben am: 17.09.2020 12:45:11

Hallo zusammen,

ich versuche etwas zu machen und bin mir nicht sicher, ob es mit VBA möglich ist. Ist es möglich Workbooks via VBA auf ein SharedDrive hochzuladen?
Zum Hintergrund: Ich habe einen Ordner auf meinen PC mit mehreren Dateien, welche mit ZBA beginnen und dann druchnummeriert sind, z. B. ZBA001, ZBA002, ZBA003 usw.

Diese Ordner Struktur findet sich auch auf einem SharedDrive wieder, also Pfad/ZBA001, Pfad/ZBA002.

Kann ich mit einem Makro ansteuern, dass die Dateien aus meinem loklaen Ordner auf meinem PC in den SharedDrive "Pfad" hochgeladen werden und die Dateien in die dazugehörigen Ordner geladen werden? Das Makro müsste dann ja meinen lokalen Ordner durchaufen, die vierte bis sechse Position am Anfang des Dateinamens erfassen und in den dazugehörigen Ordner auf dem SharedDrive hochladen und zur nächsten Datei übergehen um das selbe zu machen, oder? Vielen Dank im Voraus für jede Einschätzung/Tipps/Lösungsvorschläge bzw. Code.

Beste Grüße
Norbert

Betrifft: AW: Upload Workbooks auf SharedDrive
von: Yal
Geschrieben am: 17.09.2020 15:52:42

ohne Garantie/Gewährleistung.
Option Explicit

Sub Dateien_zuordnen()
'Unter verwendung von Microsoft Scripting Runtime (siehe Extra >> Verweise)
Dim FSO As New FileSystemObject
Dim D As File
Dim QV As Folder 'QuellVerzeichnis
Dim ZV As Folder 'Zielverzeichnis

Const cQuellVerz = "C:\MeinLokalerPfad\"
Const cZeilverz_Basis = "\\...\abc\def\"

    Set QV = FSO.GetFolder(cQuellVerz)
    If QV Is Nothing Then
        MsgBox "Fehler beim Zugriff auf Verzeichnis """ & cQuellVerz & """.", vbCritical +  _
vbOKOnly, "Fehler"
    End If
    For Each D In QV.Files
        If Left(D.Name, 3) = "ZBA" Then
            Select Case LCase(Right(D.Name, Len(D.Name) - InStrRev(D.Name, ".")))
            Case "xlsx" ', "xlsm"
                Set ZV = Nothing
                Set ZV = FSO.GetFolder(cZielverz_Basis & Left(D.Name, 5))
                If ZV Is Nothing Then Debug.Print "fehler mit " & cZielverz_Basis & Left(D.Name, _
 5)
                FSO.MoveFile D.Path, ZV.Path & "\" & D.Name
            End Select
        End If
    Next
    Set QV = Nothing
    Set ZV = Nothing
End Sub
Viel Erfolg
Yal

Betrifft: AW: Upload Workbooks auf SharedDrive
von: Norbert
Geschrieben am: 17.09.2020 17:04:11

@Yal: vielen Dank für den Code. Leider erhalte ich eine Fehlermeldung an der Stelle wo FSO as new FileSystemObject deklariert wird.






Was kann da der Fehler sein? Ich habe deinen Code 1:1 kopiert und erhalte die Fehlermeldung direkt bei der Variablendeklaration.

@Armin: Tatsächlich sollen alle Files die sich in dem Ordner befinden, in welchem auch das Makro liegt, hochgeladen werden. Die Dateien sind bereits benannt und liegen in dieser Struktur vor. Es geht also wirklich nur um den Upload und der Zuordnung zu den Ordnern in welche die einzelnen Dateien gehören.


Besten Dank für euren Input.

Beste Grüße

Norbert

Betrifft: AW: Upload Workbooks auf SharedDrive
von: ralf_b
Geschrieben am: 17.09.2020 18:18:31

Unter verwendung von Microsoft Scripting Runtime (siehe Extra >> Verweise)..... 
das hast du doch gelesen und verstanden?

Betrifft: AW: Upload Workbooks auf SharedDrive
von: Armin
Geschrieben am: 17.09.2020 15:54:34

Hallo Norbert,
natürlich geht das. Aber dazu müsste man folgendes wissen:
1.wie soll das kopieren ausgelöst werden oder über ein Auswahl z. Bsp.: ordner kopieren (alle File)
ist günstig weil du den überblick behälst.
2.werden die Nr. vom Namen erst wärend des kopieren erzeugt oder sind diese File mit Nr. schon vorhanden?

Gruß Armin

Betrifft: AW: Upload Workbooks auf SharedDrive
von: Norbert
Geschrieben am: 20.09.2020 00:45:03

Hallo,

die Aktivierung von Microsoft Scripting Runtime habe ich tatsächlich üerblesen - entschuldigung, kannte ich noch nicht. Leider läuft die Zuordnung der Workbooks zu den Ordnern bei dem Code von YAL
auf Fehler. Ich habe alles mögliche ausprobiert, leider ohne Erfolg:

Set TF = FSO.GetFolder(cTargetFolder_Basis & Left(D.Name, 5))

Wieso wird an dieser Stelle nicht an den Pfad die ersten 5 Positionen des Dateinamens angehägt? "&" zum Verbinden ist doch richtig? Ich sehe im Debugger, dass der String nach "&" leer ist, zuvor wird der Dateiname mit den ersten 5 Positionen aber verarbeitet. Ist es möglich etwas anderes als "&" für die Verbindung zu verwenden? Dann könnte ich das wenigstens versuchen.

Danke an alle.

Beste Grüße
Norbert

Betrifft: AW: Upload Workbooks auf SharedDrive
von: ralf_b
Geschrieben am: 20.09.2020 02:45:40

wenn der string leer ist ,dann nützt dir eine andere verbindung der texte auch nichts.

Betrifft: AW: Upload Workbooks auf SharedDrive
von: Norbert
Geschrieben am: 21.09.2020 22:59:21

Hat geklappt - danke an alle für eure Hilfe. Das ist ein super Forum!