ADO - Tabellenblätter - Anzahl - Geschlossene Datei...

Frage: Aus einer geschlossenen Datei benötige ich die Anzahl der Tabellenblätter. Wie geht das?

From a closed file I need the number of worksheets. How does it work?

Hier noch eine Beispieldatei / Here's a sample file:
ADO - Tabellenblätter - Anzahl - Geschlossene Datei...[ZIP 90 KB]

Option Explicit
'--------------------------------------------------------------------------
' Module    : Module1
' Procedure : Main
' Author    : Case (Ralf Stolzenburg)
' Date      : 21.06.2013
' Purpose   : ADO - Tabellenblätter - Anzahl - Geschlossene Datei...
'--------------------------------------------------------------------------
Public Sub Main()
    MsgBox fncADOSheetCount(ThisWorkbook.Path & _
        Application.PathSeparator & "Sheet_50.xls")
End Sub
Private Function fncADOSheetCount(ByVal strFileName As String) As Integer
    Dim objConn As Object
    Dim objCat As Object
    Set objConn = CreateObject("ADODB.Connection")
    With objConn
        .CursorLocation = 3 ' = adUseClient
        If Val(Application.Version) >= 12 Then
            .Provider = "Microsoft.ACE.OLEDB.12.0;" & _
                "Extended Properties=""Excel 12.0;HDR=YES"";" & _
                "Data Source=" & strFileName & ";"
        Else
            .Provider = "Microsoft.Jet.OLEDB.4.0;" & _
                "Extended Properties=Excel 8.0;" & _
                "Data Source=" & strFileName & ";"
        End If
        .Open
    End With
    Set objCat = CreateObject("ADOX.Catalog")
    Set objCat.ActiveConnection = objConn
    fncADOSheetCount = objCat.Tables.Count ' Anzahl Tabellenblätter
    Set objCat = Nothing
    If Not objConn Is Nothing Then
        If objConn.State = 1 Then objConn.Close
    End If
    Set objConn = Nothing
End Function

Beliebte Posts aus diesem Blog

Formeln - auch Array - per VBA eintragen...

Alle Dateien eines Ordners - Optional mit Unterordner

Excel -> Word in Textmarken (Bookmarks)...