Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

VBA rechts-Befehl

    Betrifft: VBA rechts-Befehl von: Alex
    Geschrieben am: 27.08.2003 14:58:34

    Hi zusammen,
    hab eine kurze VBA Frage, bei der ich nicht weiterkomme. Ich brauche einen Befehl, der die Namen der Tabellenblätter meiner Arbeitsmappe durchläuft und alle Blätter wiedergibt, die mit der Buchstabenfolge "data" beginnen (also z.B. "data 2002-2003"). Hiermit will ich dann eine Listbox füllen. Leider kenne ich aber den entsprechenden Befehl nicht.

    Danke für die Hilfe
    Alex

    dim ws as worksheet
    For Each ws In ActiveWorkbook.Worksheets
    If ws.Name = ??????????
    ActiveSheet.ListBox1.AddItem ws.Name
    End If
    Next

      


    Betrifft: AW: VBA rechts-Befehl von: PeterW
    Geschrieben am: 27.08.2003 15:00:07

    Hallo Alex,

    If Right(ws.Name, 4) = "data" Then

    Gruß
    Peter


      


    Betrifft: AW: VBA rechts-Befehl von: Alex
    Geschrieben am: 27.08.2003 15:07:30

    Hi Peter,
    danke für die Antwort, aber leider ist die Listbox jetzt ganz leer. Hab ich was falsch gemacht?

    Private Sub Worksheet_Activate()
    Dim ws As Worksheet
    
    ActiveSheet.ListBox1.Clear
    
    For Each ws In ActiveWorkbook.Worksheets
        If Right(ws.Name, 4) = "data" Then
        ActiveSheet.ListBox1.AddItem ws.Name
        End If
        Next
    With ActiveWindow
        .DisplayGridlines = False
        .DisplayHeadings = False
    End With
    
    End Sub
    


    Kannst du mir vielleicht noch erklären, wie ich als zusätzliche Bedingung etwas wie

    if ws.name <> "Overview" then

    einbauen kann? Schreibt man da: (sorry, bin blutiger Anfänger)

    If Right(ws.Name, 4) = "data" & ws.name <> "Overview" then

    danke
    Alex


      


    Betrifft: AW: VBA rechts-Befehl von: Alex
    Geschrieben am: 27.08.2003 15:08:49

    ups, habs auch grad gemerkt. Hab wieder Tomaten auf den Augen gehabt....


      


    Betrifft: AW: VBA rechts-Befehl von: PeterW
    Geschrieben am: 27.08.2003 15:25:25

    Hallo Alex,

    wenn du alle Blätter außer "Overview" in der Box haben willst dann:

    If ws.Name <> "Overview" Then

    Gruß
    Peter


      


    Betrifft: AW: VBA rechts-Befehl von: Alex
    Geschrieben am: 27.08.2003 15:38:29

    Hallo Peter,
    danke für die ganzen Bemühungen. Also eigentlich will ich eine zweite Listbox mit allen Blättern und den Bedingungen

    left(ws.name, 4) <> "data"
    und
    ws.name <> "overview"

    hab leider keine Ahnung, wie ich diese beiden Bedingungen zusammensetzen muss.

    Alex


      


    Betrifft: AW: VBA rechts-Befehl von: PeterW
    Geschrieben am: 27.08.2003 16:05:00

    Hallo Alex,

    If Left(ws.Name, 4) <> "data" And ws.Name <> "Overview" Then

    Gruß
    Peter


      


    Betrifft: Danke von: Alex
    Geschrieben am: 27.08.2003 16:22:15

    Danke!
    Gruß, Alex


      


    Betrifft: AW: VBA rechts-Befehl von: MikeS
    Geschrieben am: 27.08.2003 15:01:34

    [...]
    If Left(ws.Name, 4) = "data" Then
    [...]


      


    Betrifft: AW: VBA rechts-Befehl von: PeterW
    Geschrieben am: 27.08.2003 15:01:52

    Hallo Alex,

    der Befehl muss natürlich Left sein, oder schreibst du von rechts nach links? :-)

    Gruß
    Peter


      


    Betrifft: AW: VBA rechts-Befehl von: Nayus
    Geschrieben am: 27.08.2003 15:03:09


    For i = 1 To ActiveWorkbook.Worksheets.Count
    if mid(ActiveWorkbook.Worksheets(i).Name,1,4) = "data" then
    'Listbox füllen
    ...usw. usw.
    end if
    Next i


      


    Betrifft: AW: VBA rechts-Befehl von: Hubert Z.
    Geschrieben am: 27.08.2003 15:36:07

    Alle haben Recht, nur kommt für meine Begriffe der "Like"-Befehl immer viel zu kurz. Der ist sehr einfach und mit Ucase kombiniert auch treffsicher und fehlertolerant.

    Nur so als Idee...

    Hubert