Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Intelligente Tabelle finden und ganze Zeilen markieren

VBA Intelligente Tabelle finden und ganze Zeilen markieren
03.01.2024 11:23:18
Christoph
Hallo Excel Forum,

Ich komme mit meinem Problem einfach nicht weiter und benötige etwas Hilfe.

Aufgabe: Auf der Seite "Budget" soll die intelligente Tabelle und alle ihre Zeilen komplett markiert werden.
Wenn ich das Makro aufzeichne und die Tastenkombination Shift+ STRG + Ende + Pfeil nach Rechts anwende, werden alle Zeilen markiert. Genauso wie ich es haben möchte. Das aufgezeichnete Makro sieht dann so aus:
Sub Markiere_komplette_Zeilen()
Range("A2").Select 'gehe zu Zelle A2
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 'Markiere die int. Tabelle und die Zeilen in Spalte A
Range(Selection, Selection.End(xlToRight)).Select 'Makiere alle Zeilen bis ganz nach rechts
Selection.Copy 'Kopiere die markierten Zeilen um sie in eine andere int. Tabelle eizufügen
End Sub

Leider funktioniert das Makro nicht komplett. Der Letzte Range Befehl "Range(Selection, Selection.End(xlToRight)).Select" wird nicht ausgeführt?
Es sind leider nicht alle Zeilen komplett markiert. Mit der Bitte um Hilfe.
Hier die Beispiel Datei: https://www.herber.de/bbs/user/165796.xlsm

Gruß,
Christoph

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Intelligente Tabelle finden und ganze Zeilen markieren
03.01.2024 11:38:17
ralf_b
die Zeile sollte reichen
ActiveSheet.ListObjects(1).Range.Copy
AW: VBA Intelligente Tabelle finden und ganze Zeilen markieren
03.01.2024 12:27:03
Christoph
Hallo Ralf,
Danke für den VBA Code. Dieser markiert bei mir leider nur die intelligente Tabelle, nicht die gesamten Zeilen.
Gruß,
Christoph
AW: VBA Intelligente Tabelle finden und ganze Zeilen markieren
03.01.2024 13:49:50
ralf_b
Zitat 1: Aufgabe: Auf der Seite "Budget" soll die intelligente Tabelle und alle ihre Zeilen komplett markiert werden.

Zitat 2: Dieser markiert bei mir leider nur die intelligente Tabelle, nicht die gesamten Zeilen.

Hilf mir mal. Was stimmt denn nicht mit der Aufgabenstellung überein?
Anzeige
AW: VBA Intelligente Tabelle finden und ganze Zeilen markieren
03.01.2024 14:07:28
Christoph
Hallo Ralf,
vielleicht habe ich mich etwas unklar ausgedrückt, sorry.
Das Makro soll die Tabelle und deren kompletten Zeilen markieren. Also von Spalte A bis zum rechten Ende.
Denn nur so it es möglich, die Daten in eine andere intelligente Tabelle mit der Funktion "Kopierte Zelle einfügen" einzufügen, ohne das dort die vorhandenen Daten überschrieben werden.
Gruß,
Christoph
Anzeige
AW: VBA Intelligente Tabelle finden und ganze Zeilen markieren
03.01.2024 17:34:36
ralf_b
naja wenn du meinst.
aber du könntest dies testweise versuchen.
zwei blätter budget und budget (2) jeweils eine intelligente Tabelle.
  Worksheets("Budget").ListObjects(1).DataBodyRange.Copy Worksheets("Budget (2)").ListObjects(1).ListRows.Add.Range.Cells(1)

Anzeige
AW: VBA Intelligente Tabelle finden und ganze Zeilen markieren
03.01.2024 18:55:45
Christoph
Hallo Ralf,
Danke für das Makro, es funktioniert einwandfrei.
Mein Weg die Werte aus einer intelligenten Tabelle in eine andere zu übertragen, war auch zu kompliziert. Mit deinem kleinem Makro ist es möglich.
Vielen Dank für die Mühe und den Support :-)
Gruß,
Christoph
AW: VBA Intelligente Tabelle finden und ganze Zeilen markieren
03.01.2024 11:47:02
Daniel
Hi

In intelligenten Tabellen hat jeder relevante Bereich einen eigenen unveränderlichen Namen, übr welchen du ihn wie eine normale Zelladresse ansprechen kannst, auch in VBA.

Um diesen herauszufinden, gehe so vor:

1. Schreibe in eine freie Zelle eine einfache Formel, z.B. =Summe(...), gib den Zellbereich ein, indem du ihn mit der Maus markierst

2. Als Zellbereich für diese Formel markierst du dann den Bereich der intelligenten Tabelle , der dich interessiert.
Sobald du so einen Bereich vollständig markiert hast, wechselt die Beschreibung in der Formel vom A1-Adressformat auf den Namen der Intelligenten Tabelle.

3. Diesen Namen kannst du dann in die Range-Funktion einsetzten, um auf diesem Bereich zu referenzieren. Bei Verwendung dieses Namens musst du dich dann nicht mehr um Position und Größe kümmern, das wird alles automatisch angepasst.

Gruß Daniel
Anzeige
AW: VBA Intelligente Tabelle finden und ganze Zeilen markieren
03.01.2024 12:30:13
Christoph
Hallo Daniel,
Danke, die Tabelle heist "Tabelle134"
Wie müsste der VBA Code jetzt lauten?
Anzeige
Anzeige

Infobox / Tutorial

VBA für die Markierung ganzer Zeilen in einer intelligenten Tabelle


Schritt-für-Schritt-Anleitung

  1. Öffne das Excel-Dokument mit der intelligenten Tabelle, die Du markieren möchtest.

  2. Gehe zum VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeinDokumentName)" und wähle "Einfügen" > "Modul".
  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub Markiere_komplette_Zeilen()
       Dim tbl As ListObject
       Set tbl = Worksheets("Budget").ListObjects(1) ' Tabelle auswählen
       tbl.Range.Copy ' gesamte Tabelle markieren
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus:

    • Drücke ALT + F8, wähle Markiere_komplette_Zeilen und klicke auf "Ausführen".

Häufige Fehler und Lösungen

  • Fehler: Das Makro markiert nicht die gesamten Zeilen.

    • Lösung: Stelle sicher, dass Du die richtige Tabelle und den richtigen Bereich ausgewählt hast. Überprüfe, ob die Tabelle die korrekte Anzahl an Zeilen hat.
  • Fehler: ActiveCell.SpecialCells(xlLastCell) funktioniert nicht.

    • Lösung: Diese Methode kann fehleranfällig sein. Verwende stattdessen die ListObjects-Methode, um die gesamte Tabelle auszuwählen.

Alternative Methoden

Eine alternative Methode zur Markierung der gesamten Tabelle in Excel ist die Verwendung der Maus:

  1. Klicke auf eine Zelle in der Tabelle.
  2. Drücke CTRL + A: Dies markiert die gesamte Tabelle.
  3. Um alle Zeilen zu kopieren: Drücke CTRL + C.

Diese Methode ist hilfreich, wenn Du keine VBA-Kenntnisse hast und eine schnelle Lösung benötigst.


Praktische Beispiele

Um die gesamte Tabelle zu markieren und in eine andere zu übertragen, kannst Du den folgenden VBA-Code verwenden:

Sub Kopiere_Tabelle()
    Worksheets("Budget").ListObjects(1).DataBodyRange.Copy _
    Destination:=Worksheets("Budget (2)").ListObjects(1).ListRows.Add.Range.Cells(1)
End Sub

Dieser Code kopiert die gesamte Tabelle von "Budget" nach "Budget (2)" und fügt sie in die erste Zelle der neuen Tabelle ein.


Tipps für Profis

  • Verwende benannte Bereiche: Wenn Du den Namen der intelligenten Tabelle kennst (z.B. "Tabelle134"), kannst Du diesen direkt im Code verwenden, um die Tabelle zu referenzieren und sicherzustellen, dass Du die gesamte Tabelle ohne manuelle Anpassung markierst.

    Range("Tabelle134").Copy
  • Teste Deine Makros: Führe das Makro in einer Kopie Deiner Datei aus, um sicherzustellen, dass alles wie gewünscht funktioniert, ohne die Originaldaten zu gefährden.


FAQ: Häufige Fragen

1. Wie kann ich die gesamte Tabelle in Excel markieren?
Du kannst die gesamte Tabelle markieren, indem Du auf eine Zelle in der Tabelle klickst und CTRL + A drückst oder ein VBA-Makro verwendest, das die ListObjects-Methode nutzt.

2. Warum funktioniert mein Makro nicht?
Überprüfe, ob die Tabelle korrekt benannt ist und ob der VBA-Code ordnungsgemäß eingegeben wurde. Achte darauf, dass Du die richtige Tabelle und die richtigen Blätter angibst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige