Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

finde nur je 1 Tabellenblatt

finde nur je 1 Tabellenblatt
15.10.2005 18:06:41
Peter
Hallo Excel Experten,
ich möchte in einem Ordner alle Excel-Mappen, die auf 05.xls enden prüfen,
ob sie ein Tabellenblatt "2005" enthalten.
Mein Makro meldet mir je Datei ständig nur ein einziges Tabellenblatt - was definitiv nicht stimmt.
Wo ist mein Denkfehler?
Für einen guten Hinweis bereits jetzt vielen Dank im voraus.
Gruß Peter


Sub Hausdateien_lesen()
Dim Pfad     As String
Dim lIndx    As Long
Dim Datei    As String
Dim DateiNr  As Integer
Dim sht      As Object
Dim lBlatt   As Long
   
    Pfad = _
   "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Excel-Dateien\ErichMüller"
   Range("A6:A65536").Clear
   With Application.FileSearch
      .LookIn = Pfad
      .SearchSubFolders = True
      .Filename = "*05.xls"
      If .Execute() > 0 Then
         For lIndx = 1 To .FoundFiles.Count
            Datei = Mid(.FoundFiles(lIndx), InStrRev(.FoundFiles(lIndx), "\") + 1)
            Sheets(1).Cells(65536, 1).End(xlUp).Offset(1, 0) = Datei
            Workbooks.Open Filename:=Datei
            If Datei = "Grünst-05.XLS" Then Stop
            MsgBox "Anzahl Blätter " & Sheets.Count
            For lBlatt = 1 To Sheets.Count
               If Worksheets(lBlatt).Name = "2005" Then
                  MsgBox sht.Name
               End If
            Next lBlatt
            Workbooks(Datei).Close SaveChanges:=False
         Next lIndx
      End If
   End With

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: finde nur je 1 Tabellenblatt
15.10.2005 19:27:34
Josef
Hallo Peter!
Ungetestet!
Sub Hausdateien_lesen()

Dim Pfad As String
Dim lIndx As Long
Dim oFile As Object
Dim ws As Worksheet
Dim lRow As Long

Pfad = _
  "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Excel-Dateien\ErichMüller"

lRow = 6

Range("A6:A65536").Clear
With Application.FileSearch
  .LookIn = Pfad
  .SearchSubFolders = True
  .Filename = "*05.xls"
  If .Execute() > 0 Then
    
    For lIndx = 1 To .FoundFiles.Count
      
      Set oFile = GetObject(.FoundFiles(lIndx))
      Cells(lRow, 1) = oFile.Name
      lRow = lRow + 1
      MsgBox "Die Datei: " & oFile.Name & vbLf & _
        "enthält " & oFile.Worksheets.Count & " Tabellenblätter!"
      
      For Each ws In oFile.Worksheets
        
        If ws.Name = "2005" Then
          MsgBox oFile.Name & vbLf & ws.Name
          Exit For
        End If
        
      Next
      
      oFile.Close False
      Set ws = Nothing
      Set oFile = Nothing
      
    Next lIndx
    
  End If
  
End With

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: finde nur je 1 Tabellenblatt
16.10.2005 09:58:23
Peter
Hallo Josef,
danke für deine Hilfe, ich werde sie nachher testen, und hoffe, sie bringt mir den erhofften Durchbruch.
Viele Grüße Peter
AW: finde nur je 1 Tabellenblatt
16.10.2005 11:08:35
Peter
Hallo Josef,
warum wird in der gefundenen Datei sofort auf DieseArbeitsmappe und dort WorkbookOpen verzweigt? Das gibt Fehler, wenn dort z. B. Sheets("2005").Select steht.
Ich soll nur prüfen, ob in der Datei, mit Endung -05.xls ein Tabellenblatt "2005" enthalten ist und daraus dann gewisse Daten holen.
Hast du noch einmal eine gute Idee für mich?
Viele Grüße Peter
AW: finde nur je 1 Tabellenblatt
16.10.2005 17:12:14
Peter
Hallo Josef,
warum wird in der gefundenen Datei sofort auf DieseArbeitsmappe und dort WorkbookOpen verzweigt? Das gibt Fehler, wenn dort z. B. Sheets("2005").Select steht.
Ich soll nur prüfen, ob in der Datei, mit Endung -05.xls ein Tabellenblatt "2005" enthalten ist und daraus dann gewisse Daten holen.
Hast du noch einmal eine gute Idee für mich?
Viele Grüße Peter


Anzeige
AW: finde nur je 1 Tabellenblatt
16.10.2005 17:49:04
Josef
Hallo Peter!
Die einzige Möglichkeit um zu testen ob eine datei ein bestimmtes
Tabellenblatt enthält, ohne die Datei zu öffnen, ist mit einem Excel4Makro!
Sub Hausdateien_lesen()
Dim Pfad As String
Dim lIndx As Long
Dim lRow As Long
Dim vVal As Variant
Dim strPath As String
Dim strFile As String
Dim strFormula As String

Pfad = _
  "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Excel-Dateien\ErichMüller"

lRow = 6

Range("A6:A65536").Clear
With Application.FileSearch
  .LookIn = Pfad
  .SearchSubFolders = True
  .Filename = "*05.xls"
  If .Execute() > 0 Then
    
    For lIndx = 1 To .FoundFiles.Count
      
      strFile = Right(.FoundFiles(lIndx), InStr(1, StrReverse(.FoundFiles(lIndx)), "\") - 1)
      strPath = Left(.FoundFiles(lIndx), Len(.FoundFiles(lIndx)) - Len(strFile))
      strFormula = "'" & strPath & "[" & strFile & "]2005'!" & Range("A1").Address(, , xlR1C1)
      
      vVal = ExecuteExcel4Macro(strFormula)
      
      If Not IsError(vVal) Then
        'Anweisungen wenn Tabelle "2005" gefunden!
        MsgBox "Die Datei: " & .FoundFiles(lIndx) & vbLf & _
          "enthält ein Tabellenblatt mit dem Namen " & Chr(34) & "2005" & Chr(34) & " !"
        
      End If
      
    Next lIndx
    
  End If
  
End With

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: finde nur je 1 Tabellenblatt
16.10.2005 21:51:18
Peter
Hallo Josef,
danke für die Hilfe.
Jetzt findet dein Makro ja wenigstens die gesuchten Tabellenblätter.
Schaun mer mal, ob ich daraus die Daten extrahieren kann, die benötigt werden.
Viele Grüße Peter
AW: finde nur je 1 Tabellenblatt
15.10.2005 19:30:39
Nepumuk
Hallo Peter,
bist du dir sicher, dass Sheets.Count die Sheets der aktiven Mappe zählt und nicht die der Mappe, in welcher sich der Code befindet?
Gruß
Nepumuk

AW: finde nur je 1 Tabellenblatt
16.10.2005 09:56:47
Peter
Hallo Nepumuk,
selbst die aufrufende Mappe enthält 3 Blätter (Tabelle1, Tabelle2, Tabelle3).
Trotzdem danke für deine Hilfe.
Viele Grüße Peter
Anzeige
AW: finde nur je 1 Tabellenblatt
15.10.2005 21:10:56
Heinz
Hallo Peter,
Du schreibst:
Mein Makro meldet mir je Datei ständig nur ein einziges Tabellenblatt - was definitiv nicht stimmt.
Es kann je Datei ja nur ein Tabellenblatt mit demselben Namen geben.
Gruß
Heinz
AW: finde nur je 1 Tabellenblatt
16.10.2005 09:55:16
Peter
Hallo Heinz,
danke für deine Hilfestellung.
Wenn ich aber mit For/Next auf Sheets.count durch alle Blätter laufe, sollte es sich nicht nur auf einen Blattnamen beziehen. Oder?
Viele Grüße Peter
AW: finde nur je 1 Tabellenblatt
16.10.2005 18:02:08
Heinz
Hallo Peter,
natürlich, aber du fragst ja nach dem Tabellenblatt mit dem Namen "2005" und das kann je Datei eben nur einmal vorkommen. Alle anderen gibst du ja nicht mit der MsgBox aus.
Gruß
Heinz
Anzeige
AW: finde nur je 1 Tabellenblatt
16.10.2005 21:54:23
Peter
Hallo Heinz,
deine Aussage ist zwar richtig, aber mein Makro behauptet, die Mappen beinhalteten alle immer nur ein einziges Tabellenblatt - nicht mein gesuchtes - obwohl das teilweise dabei ist.
Aber wie gesagt immer nur 1 Tabellenblatt, das macht mich stutzig.
Da ist an meinem Makro etwas faul.
Viele Grüße Peter
AW: finde nur je 1 Tabellenblatt
18.10.2005 07:01:08
Heinz
Hallo Peter,
ich habe dein Makro bei mir getestet, es läuft einwandfrei und meldet auch die richtige Anzahl von Tabellen in den Dateien.
Gruß
Heinz
AW: finde nur je 1 Tabellenblatt
18.10.2005 08:42:07
Peter
Hallo Heinz,
danke für deine Mühe, bei mir tut es mein Makro nicht - warum auch immer.
Dank Josef habe ich aber eine laufende Lösung gefunden, die ich nun verwenden werde.
Gruß Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige