addistratocater
Goto Top

Tabelle erstellen makro, unbekannte Zeilenanzahl und bestimmte Spaltenzahl

Hallo,
zuerst möchte ich mitteilen das ich erst heute mich mit VBA beschäftige.
Das Ziel ist es eine Tabelle zu erstellen mit unbekannter Zeilenzahl.
Die Datensätze befinden sich immer ab der Zelle A3 bis AT.
Mit folgendem Makro wird jedoch eine Tabelle über AT hinaus erstellt.
Wie ich vermute herauszulesen fehlt es die Letzte Spalte anzugeben jedoch wüsste ich nicht wie ich das hier jetzt lösen kann.
Wäre dankbar wenn mir jemand dabei helfen könnte und im voraus schon mal vielen Dank.

1
2
3
4
5
6
7
8
Sub A_SelectAllMakeTable()
    Dim tbl As ListObject
    Dim rng As Range

    Set rng = Range(Range("A3"), Range("A3").SpecialCells(xlLastCell))  
    Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, rng, , xlYes)
    tbl.TableStyle = "TableStyleMedium3"  
End Sub


PS: Falls möglich hab ich gelesen das es zu nutzen ist wenn ein Error failure eingebaut wird falls die Tabelle nicht erstellt wird.

Content-ID: 532600

Url: https://administrator.de/forum/tabelle-erstellen-makro-unbekannte-zeilenanzahl-und-bestimmte-spaltenzahl-532600.html

Ausgedruckt am: 15.04.2025 um 09:04 Uhr

Fennek11
Fennek11 08.01.2020 um 14:25:12 Uhr
Goto Top
Es war eine gute Entscheidung diese Frage in einem Excel-Forum zu stellen:

https://www.clever-excel-forum.de/Thread-Als-Tabelle-formatieren-unbekan ...
godlie
godlie 08.01.2020 um 14:32:49 Uhr
Goto Top
Hallo,

1
Set rng = Range(Range("A3"), Range("A3").SpecialCells(xlLastCell))  

das hier ist genau dein Problem, ein

1
Set rng = Range("A3:AT")  

sollte reichen
beidermachtvongreyscull
Lösung beidermachtvongreyscull 08.01.2020 um 14:36:35 Uhr
Goto Top
Hi,

Dein Code:

1
2
3
4
5
6
7
8
Sub A_SelectAllMakeTable()
Dim tbl As ListObject
Dim rng As Range

Set rng = Range(Range("A3"), Range("A3").SpecialCells(xlLastCell))  
Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, rng, , xlYes)
tbl.TableStyle = "TableStyleMedium3"  
End Sub

Du könntest eine Zeile Deines Codes wie folgt wandeln:
1
Set rng = Range("A3").CurrentRegion  

Das würde, vorausgesetzt, dass die Zellen stimmig gefüllt sind, eine Matrize über die gefüllten Zellen spannen.
Addistratocater
Addistratocater 08.01.2020 um 14:49:56 Uhr
Goto Top
Vielen Dank an alle für die Schnelle Antwort mit
1
Set rng = Range("A3").CurrentRegion  
hat es funktioniert sowohl auch im die Antwort im Excel-Forum mit der Zeile
1
Set Rng = Range("A3:AT" & Cells(Rows.Count, "A").End(xlUp).Row)