bigwim
Goto Top

Exceldateien per vba im Hintergrund öffnen

Achtung Anfänger!

Hallo zusammen,

ich möchte gern ein Inventar unserer Exceldateien incl. der Gesamtzahl Arbeitsblätter und Formeln anfertigen (fragt nicht - ich versuche mich an einer Art Vorsortierung für das Thema Programmeinsatzverfahren).

Meine Funktion macht im wesentlichen schon das, was sie soll - nur Recht unschön. Die zu analysierende Datei wird (sichtbar) geöffnet und wieder geschlossen.
Ich denke, dass kann ich bestimmt auch eleganter lösen, komme nur nicht dahinter wie und habe jetzt die Hoffnung, dass jemand einen Tipp für mich hat ....

Danke im voraus
Markus


Sub Statistik()
Dim Anzahl              As Long
Dim Blatt               As Variant
Dim Zeile               As Long
Dim Dateiname          As String
Dim wbXL                As Excel.Workbook


Zeile = 5
Dateiname = Cells(Zeile, 1)
While Dateiname <> ""  
    Anzahl = 0
    Set wbXL = workbooks.open(Dateiname)
    
    On Error Resume Next
    For Each Blatt In wbXL.Worksheets
        Anzahl = Anzahl + CLng(Blatt.Cells.SpecialCells(xlCellTypeFormulas).Count)
    Next

    On Error GoTo 0
    Cells(Zeile, 2) = wbXL.Worksheets.Count
    Cells(Zeile, 3) = Anzahl
    
    wbXL.Close (False)
    Set wbXL = Nothing
    Zeile = Zeile + 1
    Dateiname = Cells(Zeile, 1)
Wend

End Sub

Quelle der Zeile 17: www.excel-inside.de Der Rest ist von mir *stolz*

Version 1.0
In den Zellen A5, A6, A7, ... steht der Dateiname mit vollständigen Pfad.
Die Funktion öffnet die Tabelle, ermittelt Statistik und schreibt diese dann in B5 (Anzahl Blätter), C5 (Anzahl Formeln)

Version 1.1
Wenn ich herausgefunden habe, wie ich Verzeichnisse lesen kann, werden ab dem Startverzeichnis alle Exceldateien gelistet und analyisert ....

[Edit]
GetObject(Dateiname) ersetzt durch Workbooks.open(Dateiname)
mußte feststellen, dass das auf Nicht-Entwickler-PC's besser läuft ...
[/Edit]

Content-ID: 172299

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

Ausgedruckt am: 24.11.2024 um 18:11 Uhr

BigWim
BigWim 31.08.2011 um 10:04:46 Uhr
Goto Top
Kaum benutzt man die richtigen Suchwörter ....
Sub Statistik()
....
Application.ScreenUpdating = False
While Dateiname <> ""  
...    
Wend
Application.ScreenUpdating = True

End Sub
Gruß
Markus