Tabellenblatt existiert

Bild

Betrifft: Tabellenblatt existiert
von: Christian
Geschrieben am: 22.04.2005 09:47:10
Hallo zusammen
ich möchte eine schleife verwenden dir mir in einer arbeitsmappe prüft ob ein gewisses tabellenblätter existiert und falls ja eine prodzedur aufruft und falls nein nach dem nächsten blatt sucht. kann mir jemand helfen?
vielen dank im voraus und gruss.

Bild

Betrifft: AW: Tabellenblatt existiert
von: Michel
Geschrieben am: 22.04.2005 09:58:09
Hi,

Diese kleine Schleife wäre, um festzustellen, ob das Blatt existiert
Dim wks As Worksheet
For Each wks in Worksheets
If wks.Name = "DeinBlatt" Then DeineProzedur
Next wks

Aber, woher nimmst du die Namen, um weitere Blätter zu prüfen?
Du kannst höchstens, ohne es eben zu wissen, diese Prod weiterbilden.
For Each wks in Worksheets
If wks.Name = "DeinBlatt" Or wks.Name = "Dein anderes Blatt" Then DeineProzedur
Next wks
cu
Michel
Bild

Betrifft: AW: Tabellenblatt existiert
von: Christian
Geschrieben am: 22.04.2005 10:58:52
Hallo Michel und jan-und-jana
vielen dank für eure antworten.
kurz zur eklärung. ich habe in meiner arbeitsmappe tabellenblätter deren namen aus einem string "unternehmen" und einer id (1-50) zusammengesetzt ist, z.b. unternehmen11. ich möchte nun die daten aus den verschiedenen tabellenblätter in einem tabellenblatt zusammenfassen, d.h. eine schleife schreiben, die mir die entsprechenden werte aus den einzelnen blätter nacheinander in ein blatt "import" schreibt. das problem ist aber nun, dass nicht alle blätter zur gleichen zeit vorhanden sind oder möglicherweise nicht alle existieren, so dass ich zuerst prüfen muss ob ein blatt existiert bevor die werte übertragen werden können.
Bild

Betrifft: AW: Tabellenblatt existiert
von: jan-und-jana
Geschrieben am: 22.04.2005 10:14:16
Hallo Christian,
Hier deine Prozedur:

Sub existTabellenBlatt(strTabellenblattName As String)
    Dim objWorksheet As Worksheet
    For each objWorksheet In ThisWorkbook.Worksheets
        If objWorksheet.Name = strTabellenblatt THen
            'das Tabellen Blatt esistiert, tu was du willst
        Else
            'das Tabellen blatt existiert nicht, tu was du willst
        End If
    Next objWorksheet
    Set objWorksheet = Nothing'Speicher aufräumen
End Sub

Zur Info die Worksheets-Eigenschaft entspricht einer Collection mit allen Worksheet Objekten. diese wird iterativ durchlaufen und man referenziert bei idem Schleifen-Durchlauf das nächste Worksheet-Objekt.
Ich würde die oben gezeigte Prozedur etwas anpassen, so dass sie öffters verwendbar ist.

Function existTabellenBlatt(strTabellenblattName As String) As Boolean
    Dim boolRetrun As Boolean
    Dim objWorksheet As Worksheet
    boolReturn = false
    For each objWorksheet In ThisWorkbook.Worksheets
        If objWorksheet.Name = strTabellenblatt THen
            'das Tabellen Blatt esistiert, tu was du willst
            boolReturn = true
            Exit For
        End If
    Next objWorksheet
    existTabellenBlatt = boolReturn
    Set objWorksheet = Nothing 'Speicher aufräumen
End Function

Na ja das kannst du halten wie du willst.
Gruß, jan-und-jana
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Tabellenblatt existiert"