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, 5436 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
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

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

Frage von Acht85 zum Thema Microsoft Office ...

VB for Applications
Excel VBA Sortierung von Daten (4)

Frage von easy4breezy zum Thema VB for Applications ...

VB for Applications
gelöst Excel VBA Eine oder mehrere Zellen Verschieben (2)

Frage von batchnewbie zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...