Microsoft Excel

Herbers Excel/VBA-Archiv

Tabellenblattnamen per VBA

Betrifft: Tabellenblattnamen per VBA von: Thomas
Geschrieben am: 20.10.2020 08:19:20

Hallo,

Dank der Hilfe von Gerd habe ich jetzt schon den folgenden VBA Code erhalten.

Er liefert mir eine Liste mit den Tabellenblattnamen ab der Zelle A2 und daneben ab der Zelle B2 zugehörigen Werte der Zelle B2 der einzelnen Tabellenblätter.
Leidr bin ich zu blöd, um den Code so zu verändern, dass die Liste der Tabellenblätter ab der Zelle C5 beginnt und die Werte der zugehörigen Zellen B1 ab der Zelle D5 beginnen.

Kann mir da nochmal jmd. helfen???
Danke und LG

Private Sub Worksheet_Activate()
    
        Dim Wsh As Worksheet
    
        
        Range(Cells(2, 1), Cells(2, 1).End(xlDown).Offset(0, 1)).ClearContents
        
        For Each Wsh In ThisWorkbook.Worksheets
        
            With Wsh
                
                If .Name <> Me.Name Then
                
                    Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(1, 2) = _
                    Array(.Name, .Cells(2, 2).Value)
                
                End If
            
            End With
        
        Next
    
    
    End Sub

Betrifft: AW: Tabellenblattnamen per VBA
von: ralf_b
Geschrieben am: 20.10.2020 08:28:30

dann schau dir die Hilfen zu den Funktionen an.

Cells(2, 1) = Zelle(zeile, spalte) = A2

.Offset(0, 1) = verschiebt den Bereich um (Zeilenanzahl,Spaltenanzahl) = eine spalte nach rechts = Spalte B

.Resize(1, 2)= Bereich wird vergrößert = (Zeilenanzahl, Spaltenanzahl) = aus "A2" wird "A2:B2"

Betrifft: AW: Tabellenblattnamen per VBA
von: Thomas
Geschrieben am: 20.10.2020 08:58:40

ich probier jetzt schon so lange rum mit try and error aber irgendwie macht es noch nicht klick, leider :(

Kannst du mir helfen?

Betrifft: AW: Tabellenblattnamen per VBA
von: ralf_b
Geschrieben am: 20.10.2020 09:09:14

naja, try and error funktioniert eben nicht wenn man sich nicht mit dem Thema nicht grundsätzlich auseinandersetzt.

ungetestet!
Private Sub Worksheet_Activate()

    Dim Wsh As Worksheet

    'c5:D5 wird leer gemacht
    Range(Cells(5, 3), Cells(5, 3).End(xlDown).Offset(0, 1)).ClearContents
    
    For Each Wsh In ThisWorkbook.Worksheets
    
        With Wsh
            
            If .Name <> Me.Name Then
                'eine Zeile unter der letzt benutzten Zelle in Spalte 3 ('C')
                'vergrößert sich der Bereich auf 2 Spaltenbreite
                Cells(Rows.Count, 3).End(xlUp).Offset(1).Resize(1, 2) = _
                Array(.Name, .Cells(1, 2).Value)  'Name und  B1 aus anderem Blatt
            
            End If
        
        End With
    
    Next

End Sub


Beiträge aus dem Excel-Forum zum Thema "Tabellenblattnamen per VBA"