konstmann
Goto Top

Excel - VBA - Macro - Ordner zugriff - aber nicht auf jeden Subordner

Moin moin,

ich habe noch nie in VBA etwas gemacht und jetzt die Aufgabe bekommen ein vorhandes Macro zu bearbeiten.

Das Macro sucht auf von einem Netzlaufwerk (H: ) ein spezielle Daten und gleicht diese mit den eigenen word-dokumenten in einem eigenen verzeichniss (T: )auf einem anderen netzlaufwerk ab:


Public Const pathH = "\\192.164.100.1\DATEN\DOKUMENT"
Public Const pathT = "T:\MyDocs\Dokument"

Soweit funzt ganze auch, allerdings befindet sich in pathH ein Ordner auf den der Zugriff verweigert ist. Dieser Ordner müsst also ausgelassen/ übersprungen werden damit das ganze richtig funktioniert.

Wie kann ich das am besten realisieren?

Noch ein kleiner Code.-Ausschnitt
'Modul für den Ordnerdurchlauf durch H   

Public Sub RunThroughFolderH (ByVal searchFolder As Variant, ByRef row As Integer, ByRef line As Integer)

    'Rekursiv werden die einzelnen Ordner und Unterordner durchlaufen und ihre Dateien verglichen  
    
    Dim Ordner As Variant
    Dim SubOrdner As Variant
    Dim Datei As Variant
    Dim gueltig As Boolean
    

    Set Ordner = FSO.GetFolder(searchFolder)

    For Each Datei In Ordner.Files                                         'Durchlaufen jeder Datei im aktuellen Ordner  
        If FM.relevantFile(Datei) = True Then                      'Prüfen auf richtige Dokumentennummern  
            Select Case (FM.gueltig(Datei))
                Case True
                    FM.addToList Datei, row, "Bestand_Hgueltig"  
                Case False
                    FM.addToList Datei, line, "Bestand_Hungueltig"  
            End Select
            
        End If
    Next
         
    For Each SubOrdner In Ordner.SubFolders                                   '  Durchlaufen jedes Unterordners des aktuellen Ordners  
        RunThroughFolderH SubOrdner.path, row, line             'Rekursiver Aufruf mit einem der Unterordner als neuem Hauptordner  
    Next

End Sub


Vielen Dank schonmal für eure Hilfe

[Edit Biber] Gecodetagged. [/Edit]

Content-Key: 146110

Url: https://administrator.de/contentid/146110

Printed on: April 23, 2024 at 07:04 o'clock

Member: bastla
bastla Jul 02, 2010 at 11:51:59 (UTC)
Goto Top
Hallo konstmann und willkommen im Forum!

Entweder an strategisch günstiger Stelle ein "On Error Resume Next" platzieren, oder als Zeile 28:
If LCase(SubOrdner.Path) <> LCase("\\192.164.100.1\DATEN\DOKUMENT\Der\leider\nicht") Then RunThroughFolderH SubOrdner.path, row, line
Grüße
bastla
Mitglied: 76109
76109 Jul 02, 2010 at 12:02:52 (UTC)
Goto Top
Hallo konstmann!

Mhm, bastla war mal wieder schnellerface-smile

In etwa so:
On Error Resume Next

For Each...
    If Err.Number = 0 Then
        Mach was....
    Else
        Err.Clear
    End If
Next


Gruß Dieter
Member: konstmann
konstmann Jul 09, 2010 at 09:02:00 (UTC)
Goto Top
Perfekt,

so läuft das.
vielen dank!