Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
392to396
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
392to396
392to396
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Leere Zeilen und Spalten löschen

Leere Zeilen und Spalten löschen
10.03.2004 18:20:03
Pia
Hallo zusammen
Neue Formulierung: Ich möchte in einer Tabelle die leeren Zeilen und die leeren Spalten löschen wenn im Bereich G3:K112 der jeweiligen Zeile bzw. Spalte keine Daten sind.
Oder anders gefragt: ich will nur die Zeilen und Spalten sehen die im Bereich G3:K112 einen Eintrag haben.
Besten dank zum voraus
Gruss

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Zeilen und Spalten löschen
10.03.2004 18:47:18
K.Rola
Hallo,
das entsprechende Blatt muss aktiv sein. Wenn das von einem anderen
Blatt aus aufgerufen werden soll, dann muss der Blattname noch mit
eingebaut werden.
Option Explicit

Sub leere_weg()
Dim z As Long
For z = 112 To 3 Step -1
If Application.CountA(Range(Cells(z, 7), Cells(z, 11))) = 0 Then
Rows(z).Delete
End If
Next
For z = 11 To 7 Step -1
If Application.CountA(Range(Cells(3, z), Cells(112, z))) = 0 Then
Columns(z).Delete
End If
Next
End Sub

Gruß K.Rola
AW: Leere Zeilen und Spalten löschen
11.03.2004 23:22:12
cessius
Hallo Pia
hier ein Auszug aus einem wöchentlichen kostenlosen e-mail-Abo von smart tools, zu beziehen unter http://www.add-in-world.com/katalog/. Sehr empfehlendwert.

Leerzeilen in Ihren Tabellen löschen oder ausblenden
Versionen: Excel 97, 2000 und 2002/XP
Wenn Sie Tabellen wir den Ausdruck oder die Weitergabe im Team aufbereiten, stehen Sie immer wieder vor dem Problem, unerwünschte Leerzeilen entfernen zu müssen. Dabei kann es sich entweder um komplett leere Zeilen handeln oder auch um noch nicht komplett ausgefüllte Positionen, die auf dem Ausdruck zunächst nicht erscheinen sollen. Excel bietet standardmäßig keine Funktion, um die Ausgabe von Leerzeilen zu verhindern, aber wir möchten Ihnen im Folgenden einige nützliche Tipps und Techniken vorstellen, mit deren Hilfe Sie dieses Manko beheben können.
Gehen wir zunächst einmal davon aus, dass Sie eine umfangreiche Liste mit Budgetpositionen erstellt haben. Zurzeit liegen noch nicht alle Beträge vor, so dass Sie eine Liste erstellen möchten, auf der nur die vollständigen Zeilen zu sehen sind. Die Beträge befinden sich in unserem Beispiel in Spalte D, so dass Sie zunächst alle Zeilen ausblenden möchten, die in Spalte D keinen Eintrag aufweisen. Auf Wunsch geht das manuell mit der folgenden Technik:
1. Markieren Sie Spalte D über die gesamte Länge Ihrer ausgefüllten Liste. Also zum Beispiel: D4:D350.
2. Drücken Sie Strg+G oder wählen Sie das Menü Bearbeiten-Gehe zu an.
3. Klicken Sie auf Inhalte.
4. Markieren Sie die Option Leerzellen und bestätigen Sie mit Ok.
5. Excel während daraufhin alle leeren Zellen in Spalte D Ihrer Liste aus. Sie brauchen nur noch das Menü Format-Zeile-Ausblenden anzuwählen und schon sind alle unerwünschten Zeilen aus Ihrer Liste verschwunden. Sie können die Tabelle daraufhin ausdrucken und die Zeilen dann wieder sichtbar machen, indem Sie Ihre Liste markieren und Format-Zeile-Einblenden anwählen.
Übrigens: Wenn Sie die Zeilen mit leeren Einträgen nicht nur ausblenden, sondern komplett entfernen möchten, können Sie anstelle des Ausblenden-Menüs auch Bearbeiten-Zellen löschen anwählen, die Option Ganze Zeile aktivieren und mit Ok bestätigen.
Wenn Sie diese Arbeitsschritte nur ab und zu ausführen müssen, ist es gut, diese Technik zu kennen. Bei regelmäßiger Nutzung bietet sich der Einsatz eines entsprechenden Makros an, das Sie beispielsweise einer Schaltfläche zuweisen. Das folgende Makro können Sie starten, nachdem Sie die Spalte in Ihrer Liste markiert haben, auf deren Grundlage leere Zellen bestimmt und die entsprechenden Zeilen dann ausgeblendet werden sollen:

Sub procZeilenVerdecken()
intAnzahl = Selection.Rows.Count
For I = 1 To intAnzahl
If ActiveCell = "" Then
ActiveCell.Rows.Hidden = True
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Next I
End Sub

Und so sieht das Makro aus, das die gefundenen Zeilen löscht:

Sub procZeilenLoeschen()
intAnzahl = Selection.Rows.Count
For I = 1 To intAnzahl
If ActiveCell = "" Then
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Next I
End Sub

Die Funktionsweise ist schnell erklärt: Im ersten Schritt wird über "Selection.Rows.Count" festgestellt, wie viele Zeilen die aktuelle Markierung umfasst. In einer Schleife durchlaufen wir dann die komplette markierte Spalte Zelle für Zelle und prüfen jeweils, ob der Inhalt leer ist oder nicht. Danach wird die Markierung über "ActiveCell.Offset" um eine Zeile nach unten gesetzt.
Etwas komplizierter wird die Angelegenheit, wenn Sie nur die Zeilen aus Ihrer Liste löschen möchten, die wirklich komplett leer sind. In diesem Fall hilft die Funktion Inhalte auswählen nicht mehr weiter und Sie können nur auf ein Makro zugreifen. Unsere Lösung dazu sieht folgendermaßen aus:

Sub procLeereMarkZeilenVerdecken()
lngAnzahl = Selection.Rows.Count
For I = 1 To lngAnzahl
If Application.CountA(Selection.Rows(I)) = 0 Then
Selection.Rows(I).Hidden = True
End If
Next I
End Sub

In diesem Fall gehen wir davon aus, dass Sie vor dem Aufruf des Makros die komplette Liste markiert haben. Wir ermitteln dann die Anzahl der Zeilen und gehen den gesamten Bereich Zeile für Zeile durch. Dabei prüfen wir für jede Zeile, ob Sie komplett leer ist oder nicht, indem wir die Funktion "CountA" einsetzen. Sie entspricht der deutschen Tabellenfunktion "Anzahl2" und liefert die Anzahl der ausgefüllten Zellen in einem Bereich. Nur wenn das Ergebnis 0 ist, ist die Zeile wirklich komplett leer und sie wird ausgeblendet. Möchten Sie die leeren Stellen stattdessen löschen, sieht das Makro folgendermaßen aus:

Sub procLeereMarkZeilenLoeschen()
lngAnzahl = Selection.Rows.Count
For I = 1 To lngAnzahl
If Application.CountA(Selection.Rows(I)) = 0 Then
Selection.Rows(I).Delete
End If
Next I
End Sub

Anzeige

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige