Anzeige
Archiv - Navigation
1452to1456
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
Inhaltsverzeichnis

Zeilen löschen

Zeilen löschen
02.11.2015 08:33:46
Sonnenblume
Hallo :)
Ich würde gerne verschiedene Zeilen löschen bzw. ausblenden lassen, habe allerdings keine guten Kenntnisse mit Makros.
Es soll sich auf eine Zelle beziehen in der eine Wenn- und SVerweis Formel steht und wenn dann in dieser Zelle "?" angezeigt wird soll die komplette Zeile gelöscht werden.
Ich hab schon einige Beiträge zu diesem Thema gelesen, allerdings keine auf Grundlage einer Formel.
Ist das überhaupt mit Makros möglich?
Ich hoffe mir kann jemand weiterhelfen
Liebe Grüße :)

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen
02.11.2015 08:40:35
Esmo
Moin!
Du willst also auf zwei Bedingungen reagieren: 1. Die Zelle hat eine Formel 2. Das Ergebnis der Formel ist "?"
Und wo stehen Deine Daten? Tabelle, die in Zeile 1 beginnt oder willst Du dann immer von der aktuellen Zelle nach unten gehen (sprich die steht oberhalb aller Zellen, die ev. für die Löschung in Frage kommen) oder wie?
Gruß
Ralph

AW: Zeilen löschen
02.11.2015 08:53:47
Sonnenblume
Ja genau
Ich hab mehrere Registerblätter und dort gibt es viele verschiedene Werte und sobald in einer Zelle (also immer in der Spalte F) die "?" stehen soll diese Zeile gelöscht werden.
Also würde ich eben gerne so zu sagen die gesamte Spalte F überprüfen lassen und sobald "?" auftaucht die Zeile dazu komplett löschen.
Hast du das gemeint?

Anzeige
AW: Zeilen löschen
02.11.2015 08:55:42
Esmo
Sorry,
die Zeile soll aber nur gelöscht werden, wenn die Zelle in Spalte F eine Formel hat und das Ergebnis der Formel "?" ist? Oder willst Du alle Zellen löschen, die in Spalte F eine Formel haben?
Gruß
Ralph

AW: Zeilen löschen
02.11.2015 09:03:52
Sonnenblume
Genau es sollen nur die Zeilen gelöscht werden, wenn dort in Spalte F die Formel steht mit dem Ergebnis "?"
Vielen Dank schon mal :)

AW: Zeilen löschen
02.11.2015 09:25:51
Daniel
HI
eine einfache Lösung wäre folgende:
ändere die Formel so ab, dass statt dem ? ein Fehlerwert (der NV-Fehler) oder Wahrheitswert ausgeben wird (also eine Wertart, die im Regelfall nicht als Ergebnis vorkommt).
denn dann kannst du diese Zellen so ganz einfach selektieren:
- alle Zellen selektieren
- Selektion über START - BEARBEITEN - SUCHEN UND AUSWÄHLEN - INHALTE - FORMELN - Wahrheitswert (oder Fehler)
auf die Zellen mit Wahrheitswert oder Fehler einschränken
- selektierte Zellen ausblenden oder löschen (mit der Option "ganze Zeile")
sieht dann als Code so aus (löschen von Zeilen mit Wahrheitswert):
Cells.SpecialCells(xlcelltypeformulas, 4).EntireRow.Delete
oder so (ausblenden von Zeilen mit Fehlerwert)
Cells.SpecialCells(xlcelltypeformulas, 16).EntireRow.Hidden = True
in der SpecialCells-Funktion steht die 4 für Wahrheitswerte und die 16 für Fehlerwerte
alternativ kannst du ja auch mit dem Autofilter nach ? filtern und dann die sichtbaren Zeilen löschen (der Recorder ist dein Freund).
Dem Autofilter ist es egal, ob das "?" per Formel oder von Hand geschrieben wurde.
Gruß Daniel

Anzeige
AW: Zeilen löschen
02.11.2015 09:49:07
Sonnenblume
Vielen Dank für die Antwort.
Also das Problem ist, dass diese NV-Fehler schon angezeigt werden, ich wollte die Formel eigentlich so ändern damit eben anstelle des Fehlers "?" angezeigt werden (allerdings nur in Spalte F). Das heißt der NV-Fehler kommt auch in anderen Spalten vor und dann werden alle ausgewählt (zumindest als ich es gerade getestet hab)
Kann man das vielleicht anpassen? Dass nur Fehler in der Spalte F ausgewählt werden?
Und muss ich das dann immer von Hand aktivieren oder geht das dann für alle Registerkarten automatisch?
Liebe Grüße :)

AW: Zeilen löschen
02.11.2015 09:51:40
Daniel
Hi
wenns nur in der Spalte F gelten soll, dann eben
Columns(6).SpecialCells(xlcelltypeformulas, 16).EntireRow.Delete

Gruß Daniel

Anzeige
AW: Zeilen löschen
02.11.2015 09:57:02
Sonnenblume
Vielen Dank das funktioniert! :)
Habe allerdings noch eine Frage, wie kann ich das nun einstellen, dass dies auf mehreren Registerblättern funktioniert?

AW: Zeilen löschen
02.11.2015 10:10:06
Daniel
Hi
das musst du dann für alle Blätter einzeln ausführen oder eine Schleife über alle Blätter erstellen:
dim ws as Worksheet
for each ws in activeworkbook.worksheets
ws.columns(6).Specialcells(xlcelltypeformulas, 16).EntireRow.Delete
next
und damit das ganze nicht mit einem Fehler abbricht wenn mal auf einem Tabellenblatt kein Fehler in der Spalte F vorhanden ist:
dim ws as Worksheet
On Error Resume Next
for each ws in activeworkbook.worksheets
ws.columns(6).Specialcells(xlcelltypeformulas, 16).EntireRow.Delete
next
On Error Goto 0
dummerweise erzeugt die .SpecialCells-Funktion einen Fehlerabbruch, wenn sie keine Werte finden kann.
da es aber durchaus möglich ist, dass alle SVerweise in Spalte F "erfolgreich" sind, muss man in diesem Fall den Fehlerabbruch irgendwie vermeiden und dafür sorgen, dass dann einfach mit dem nächsten Blatt weiter gearbeitet wird.
dafür sorgt das On Error Resume Next
damit dann hinterher wieder der normale Fehlerprozess aktiv ist (Fehlerabbruch mit Fehlermeldung) setzt man das On Error Goto 0
Gruß Daniel

Anzeige
AW: Zeilen löschen
02.11.2015 10:54:17
Sonnenblume
Vielen vielen Dank!! :)
Jetzt hab ich noch eine Frage
Geht das auch, dass die Zeilen nur ausgeblendet werden und man sie somit über rechtsklick "Einblenden" wieder einfügen könnte?
Grüße

AW: Zeilen löschen
02.11.2015 11:05:08
Daniel
Hi
geht auch.
in meiner ersten Antwort hatte ich auch beschrieben wie man Zellen ausblendet, einfach dort nochmal nachlesen.
Gruß Daniel

AW: Zeilen löschen
02.11.2015 11:08:12
Sonnenblume
Oh stimmt, sorry
Perfekt vielen Dank, es funktioniert!! :)

AW: Zeilen löschen
02.11.2015 11:33:06
Sonnenblume
Mir ist doch noch was eingefallen, sorry
Ist es möglich, dass das Makro automatisch ausgeführt wird sobald man auf ein anderes Registerblatt
klickt?

Anzeige
AW: Zeilen löschen
02.11.2015 12:41:33
Daniel
Hi
ja geht auch.
dafür musst du auf das Modul "DieseArbeitsmappe" wechseln.
und ein entsprechendes Event-Makro erstellen.
wähle hierzu in der linken Combobox oberhalb des Codefensters auf "Workbook"
dabei wirt automatsich das Workbook_Open-Eventmakro erstellt, welches du aber wieder löschen kannst.
klicke jetzt in die rechte Combobox. Dort werden dir alle Eventmakros angezeigt, welche für das Workbook zur verfügung stehen. Für dich wäre dass "SheetDeactivate"
wenn du auf den eintrag klickst, wird automatisch dieses Makro mit Kopf- und Endzeile erstellt und du kannst deinen Code dazwischen einfügen.
Dieses Makro läuft immer dann, wenn du einen anderen Reiter anklickst.
Zusätzlich steht dir in diesem Makro die Variable Sh zur verfügung, welche als Objektvariable das Tabellenblatt enthält, welches zu verlassen willst.
Gruß Daniel

Anzeige
AW: Zeilen löschen
02.11.2015 14:12:03
Sonnenblume
Vielen Dank, das funktioniert alles :)
Jetzt hab ich nur noch eine Frage und zwar möchte ich mehrere Makros dort einfügen, also dass beide automatisch ausgeführt werden wenn man auf ein anderes Registerblatt klickt?
Das andere Makro lautet:
Sub Zahlenformat()
With Range("A10:A150")
.NumberFormat = "General"
.Value = .Value
End With
End Sub
Hoffe du weißt was ich meine ;)

AW: Zeilen löschen
02.11.2015 14:23:27
Esmo
Moin!
Es gibt auch ein Ereignis "Worksheet Activate".
Gruß
Ralph

AW: Zeilen löschen
02.11.2015 14:23:29
Esmo
Moin!
Es gibt auch ein Ereignis "Worksheet Activate".
Gruß
Ralph

Anzeige
AW: Zeilen löschen
02.11.2015 14:33:52
Sonnenblume
Was muss ich da dann machen? Bzw. muss ich da dann etwas anderes auswählen als bei dem vorherigen Makro?

AW: Zeilen löschen
02.11.2015 14:37:58
Daniel
Hi
das muss beides ins gleiche Makro:
Private Sub WieImmderdasMakroauchheisst(...)
hier der Code des ersten Makros (ohne Sub  und End Sub)
hier der Code des zweiten Makros (ohne Sub und End Sub)
End Sub
Gruss Daniel

AW: Zeilen löschen
02.11.2015 14:42:47
Sonnenblume
Okay, danke :)

AW: Zeilen löschen
02.11.2015 12:35:36
Sonnenblume
Mir ist doch noch was eingefallen, sorry
Ist es möglich, dass das Makro automatisch ausgeführt wird sobald man auf ein anderes Registerblatt
klickt?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige