Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

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

Frage Entwicklung VB for Applications

Mitglied: konstmann

konstmann (Level 1) - Jetzt verbinden

02.07.2010, aktualisiert 12:23 Uhr, 5508 Aufrufe, 3 Kommentare

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 geht 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
01.
'Modul für den Ordnerdurchlauf durch H  
02.
 
03.
Public Sub RunThroughFolderH (ByVal searchFolder As Variant, ByRef row As Integer, ByRef line As Integer) 
04.
 
05.
    'Rekursiv werden die einzelnen Ordner und Unterordner durchlaufen und ihre Dateien verglichen 
06.
     
07.
    Dim Ordner As Variant 
08.
    Dim SubOrdner As Variant 
09.
    Dim Datei As Variant 
10.
    Dim gueltig As Boolean 
11.
     
12.
 
13.
    Set Ordner = FSO.GetFolder(searchFolder) 
14.
 
15.
    For Each Datei In Ordner.Files                                         'Durchlaufen jeder Datei im aktuellen Ordner 
16.
        If FM.relevantFile(Datei) = True Then                      'Prüfen auf richtige Dokumentennummern 
17.
            Select Case (FM.gueltig(Datei)) 
18.
                Case True 
19.
                    FM.addToList Datei, row, "Bestand_Hgueltig" 
20.
                Case False 
21.
                    FM.addToList Datei, line, "Bestand_Hungueltig" 
22.
            End Select 
23.
             
24.
        End If 
25.
    Next 
26.
          
27.
    For Each SubOrdner In Ordner.SubFolders                                   '  Durchlaufen jedes Unterordners des aktuellen Ordners 
28.
        RunThroughFolderH SubOrdner.path, row, line             'Rekursiver Aufruf mit einem der Unterordner als neuem Hauptordner 
29.
    Next 
30.
 
31.
End Sub

Vielen Dank schonmal für eure Hilfe

[Edit Biber] Gecodetagged. [/Edit]
Mitglied: bastla
02.07.2010 um 13:51 Uhr
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
Bitte warten ..
Mitglied: 76109
02.07.2010 um 14:02 Uhr
Hallo konstmann!

Mhm, bastla war mal wieder schneller

In etwa so:
01.
On Error Resume Next 
02.
 
03.
For Each... 
04.
    If Err.Number = 0 Then 
05.
        Mach was.... 
06.
    Else 
07.
        Err.Clear 
08.
    End If 
09.
Next


Gruß Dieter
Bitte warten ..
Mitglied: konstmann
09.07.2010 um 11:02 Uhr
Perfekt,

so läuft das.
vielen dank!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

(1)

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
Excel VBA "SVERWEIS" über mehrere Dateien in Ordner (2)

Frage von Acht85 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel VBA: Automatische Konvertierung von Textdatei (.txt) zu Exceldatei (.xlsx) (7)

Frage von Booster07 zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel VBA Tabelleblätter kopieren und Umbenennnen (8)

Frage von Florian86 zum Thema Microsoft Office ...

Windows 7
gelöst Ordner Zugriff verweigert (2)

Frage von chnie123 zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Router & Routing
Tipps für Router (ca. 100 clients, VPN) (18)

Frage von oel-auge zum Thema Router & Routing ...

TK-Netze & Geräte
Convert von TAPI auf CAPI gesucht (12)

Frage von StefanKittel zum Thema TK-Netze & Geräte ...