Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Prozedur erweitern

    Betrifft: VBA Prozedur erweitern von: Fritz
    Geschrieben am: 28.08.2003 14:10:01

    Hallo Excelfreunde,
    ich brauche eure Hilfe, denn ich schaffe es nicht, die nachfolgend aufgeführte Prozedur entsprechend meinen geschilderten Anforderungen abzuändern.
    Mit mit der bisherigen Prozedur wird in der jeweiligen Arbeitsmappe ein Tabellenblatt "Tabellenliste" eingefügt, in dem eine Liste der in der Mappe vorhandenen Tabellenblätter angelegt wird. Ist diese Tabelle bereits erstellt bzw. vorhanden, dann läuft das Makro so natürlich nicht mehr. Ich würde das Makro gerne erweitern, so dass in einem solchen Fall (wenn die Tabelle Tabellenliste bereits existiert), eine Abfrage erscheint, bei der der Anwender entscheiden kann, ob das Makro abgebrochen wird (also die bestehende Tabelle Tabellenliste so bestehen bleibt) oder aber gelöscht wird (danach "neu" erstellt wird um die Liste ggf zu aktualisieren). Möglich wäre natürlich auch den Code so umzuschreiben, dass bei einer bestehenden Tabelle nur die Liste neu geschrieben (aktualisiert) wird.
    Für Hilfen eurerseits danke ich im Voraus.
    Gruß Fritz

    Sub Tabellenliste()
    
    Dim ws As Worksheet
    Dim i As Integer
    
          Worksheets.Add
          ActiveSheet.Name = "Tabellenliste"
          ActiveSheet.Move Before:=Worksheets(1)
          i = 1
          For Each ws In ThisWorkbook.Worksheets
          ThisWorkbook.Worksheets("Tabellenliste") _
          .Cells(i, 1).Value = ws.Name
          i = i + 1
          Next ws
    
    End Sub
    

      


    Betrifft: AW: VBA Prozedur erweitern von: Nayus
    Geschrieben am: 28.08.2003 14:31:55

    Hallo,
    habe Variante 2 implementiert...
    Viel Spaß,
    Nayus

    Sub Tabellenliste()
    
    Dim ws As Worksheet
    Dim i As Integer
    Dim bWsPresent As Boolean
    bWsPresent = False
          For b = 1 To Worksheets.Count
            If Worksheets(b).Name = "Tabellenliste" Then
              bWsPresent = True
              Exit For
            End If
          Next b
          ' Wenn Blatt bereits vorhanden...
          If Not bWsPresent Then
            'Blatt anlegen
            Worksheets.Add
            ActiveSheet.Name = "Tabellenliste"
            ActiveSheet.Move Before:=Worksheets(1)
          Else
            'Blatt auswählen und Zellen leeren
            Worksheets("Tabellenliste").Select
            ActiveSheet.Range("A1:A256") = ""
          End If
          
          i = 1
          For Each ws In ThisWorkbook.Worksheets
          ThisWorkbook.Worksheets("Tabellenliste") _
          .Cells(i, 1).Value = ws.Name
          i = i + 1
          Next ws
    End Sub
    



      


    Betrifft: AW: Klappt hervorragend - Danke! von: Fritz
    Geschrieben am: 28.08.2003 14:42:31

    Hi Nayus,
    blitzschnell und dazu excellent.
    Danke und mein Kompliment.
    Mfg Fritz


     

    Beiträge aus den Excel-Beispielen zum Thema " VBA Prozedur erweitern"