Es kommt ja öfters vor, dass in einer Excel Tabelle leere Zeilen enthalten sind, die man nicht gebrauchen kann. Durch leere Zeile lässt sich z.B. kein anständiger Filter setzen, um den Inhalt zu sortieren.
Bevor man nun umständlich mit VBA versucht die leeren Zeilen zu löschen, kann man das auch ganz einfach mit den Excel Bordwerkzeugen machen.
Ich habe in eine Tabelle vorbereitet, in der viele leere Zeilen vorhanden sind, die ich löschen möchte. Um das ein bisschen übersichtlicher zu gestalten, die blauen Zeilen sollen unbedingt erhalten bleiben und die weißen Zeilen dazwischen sollen gelöscht werden.
Markiert nun die Spalte in der sich die leeren Zellen der Zeile befinden, die ihr entfernen möchtet und drückt dann die Taste F5.
Ich habe mal eine Frage, wie löst ihr folgendes Problem?
Ausgangssituation
In einer Excel-Arbeitsmappe gibt es mehrere gleiche Tabellen. Mit GLEICH meine ich, dass die Struktur und der Aufbau innerhalb der Tabellenblätter immer gleiche. Also ein bestimmter Wert steht in Tabelle 1, Tabelle 2, Tabelle 3, etc immer in der gleichen Zelle.
Nun zur Aufgabe. In der Arbeitsmappe gibt es eine Tabelle „Overview“ und dort sollen die Werte aus Tabelle 1 bis Tabelle 3 eingefügt werden.
Die einfachste Möglichkeit ist sicherlich in der Tabelle Overview den Cursor in die Zelle zu setzten wo der Wert eingefügt werden soll, dann „=“ einzugeben und mit der Maus in die Zellen in den einzelnen Tabellenblättern zu springen.
Was mich dabei stört, je mehr Tabellen und Werte in die Tabelle Overview übertragen werden sollen, desto länger dauert es.
In der Beispieldatei sind die Werte aus Tabelle 1 bereits in die Tabelle Overview eingefügt worden mit der Formel =Tabelle1!C6, =Tabelle1!C10, =Tabelle1!C14, etc..
Wie kommen die Werte aus Tabelle 2 in die Tabelle Overview? Macht man sich die Mühe, jeden Wert manuell zu übertragen?
Wie macht ihr das?
Hier meine Lösung:
Erstelle eine neue Tabelle
Markiere den Bereich mit den bereits übertragenen Werten und drücke Strg+C
Lösungsvorschlag
Wechsel in die neue, leere Tabelle und setzte den Cursor in die gleiche Zelle, wo in der Tabelle Overview der erste Wert steht, z.B. Overview!B3 + NeueTabelle!B3. Achtet darauf, dass ihr nur die Formel kopiert
Lösungsvorschlag
Ändert dann für den kopierten Bereich die Formatierung auf TEXT ab.
Lösungsvorschlag
Ersetzt das = durch ein Zeichen, dass nicht in der Formel vorkommt.
Lösungsvorschlag
Kopiert den Bereich und …
Lösungsvorschlag
… fügt diese in einen Editor. Im Beispiel wurde Notepad++ verwendet.
Lösungsvorschlag
Der Tabellenbezug kann nun ganz einfach von Tabelle1 in Tabelle 2 geändert werden. Drückt Strg+F und ersetzt ?Tabelle1 durch =Tabelle2
Lösungsvorschlag
Nachdem die Zellenbezüge geändert wurden, kopiert ihr die Formeln und …
Lösungsvorschlag
… fügt diese in die Tabelle Overview ein und wie durch Zauberhand sind die Werte aus Tabelle 2 da.
Mit diesem Makro ist es möglich, alle Tabellen einer Excel Arbeitsmappe in einer neuen Tabelle „Tablelist“ auflisten zu lassen.
Das Makro erzeugt neben der reinen Namensliste auch einen Hyperlink auf die Tabelle.
Sub ListeTabellen()
Dim wks As Worksheet
Dim Zeile As Long
'Wenn bereits Liste vorhanden, dann löschen
For Each wks In ThisWorkbook.Worksheets
If wks.Name = "Tablelist" Then
Application.DisplayAlerts = False
wks.Delete
Application.DisplayAlerts = True
End If
Next wks
Worksheets.Add
ActiveSheet.Name = "Tablelist"
ActiveSheet.Move Before:=Worksheets(1)
Zeile = 1
'schreibe alle Tabellennamen in eine neue Tabelle und hänge !A1 an
' erzeuge einen Link auf jede Tabelle
For Each wks In ThisWorkbook.Worksheets
'als Hyperlink
With ThisWorkbook.Worksheets("Tablelist")
.Hyperlinks.Add Cells(Zeile, 2), _
Address:="", SubAddress:=wks.Name & "!A1"
End With
Zeile = Zeile + 1
Next wks
'Sortiere Liste in Spalte B
Columns("B:B").Sort Key1:=Range("B1"), Order1:=xlAscending
End Sub
Mit einem Excel-Makro lässt sich ein variabler Bereich sehr einfach formatieren.
Die Ausgangslage
Eine Arbeitsmappe mit mehreren Tabellenblättern
In jedem Tabellenblatt sind Informationen in immer dem gleichen Bereich eingetragen, z.B. B12:F
Die Anzahl der beschriebenen Zeilen variiert von Tabellenblatt zu Tabellenblatt
Das Ziel
Wir möchten nun in jedem Tabellenblatt den Bereich formatieren, aber allerdings nur bis zur letzten beschriebenen Zeile. Somit könnte sich ergeben
Tabelle1: Bereich B12:F30
Tabelle2: Bereich B12:F60
Das Ganze lässt sich einfach mit einem Makro erledigen.
Sub FormatierungAusgabebereich()
'
' das Makro ermittelt die letzte beschriebene Zeile im Bereich B12:N und formatiert diesen
'
'
Dim letzte As Long
letzte = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
Range("B12:n" & letzte).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Die Formatierung kann man sich auch mühsam manuell eintragen, jedoch würde ich empfehlen, die Aufzeichnungsfunktion zu nutzen.
Damit man sich ein bisschen Arbeit spart, kann man das obige Makro nur einmal definieren und dann über ein Makro, dass die jeweilige Tabelle auswählt, aufrufen lassen.
Tabelle 1
Sub Tabelle1
Sheets("Tabelle1").Select
Call FormatierungAusgabebereich
End Sub
Tabelle 2
Sub Tabelle1
Sheets("Tabelle2").Select
Call FormatierungAusgabebereich
End Sub
Cookie-Zustimmung verwalten
Wir verwenden Cookies, um unsere Website und unseren Service zu optimieren.
Funktional
Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt.Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.