Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
716to720
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
716to720
716to720
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

For each löscht... aber nicht alles!

For each löscht... aber nicht alles!
09.01.2006 11:37:35
Maike
Hallo Ihr alle
Ich benutze folgende for each Zelle Schleife, um aus Messwerten diejenigen herauszuschmeißen, denen ein Wert fehlt:

Sub LueckenhafteMesswerteEntfernen()
Dim o_Zelle As Object
For Each o_Zelle In w_Mess.Range("A8:C" & v_EndeSpalteA)
Debug.Print o_Zelle.Row
If o_Zelle.Value = "-" Then
o_Zelle.EntireRow.Delete
End If
Next
End Sub

v_EndeSpalteA ist hierbei der letzte beschriebene wert in Spalte A .
Leider rückt der Zellenzähler nun ja IMMER um eine Zelle weiter. Wenn also genügend lückenhafte Messwerte hintereinanderstehen, werden manche nicht gelöscht. Kann ich irgendwie o_Zelle auf vorherige o_Zelle zurücksetzen?
Bitte helft mir!
Gruß Maike

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: For each löscht... aber nicht alles!
09.01.2006 12:04:59
Klaus-Dieter
Hallo Maike,
dieses Problem umgeht man am besten, in dem man die Schleife von der letzten zur ersten Zeile laufen lässt. Also etwa so:
For Zeile = 15 To 1 Step -1
'löschen
Next Zeile
Viele Grüße Klaus-Dieter

Online-Excel
AW: For each löscht... aber nicht alles!
09.01.2006 12:32:32
Maike
Hallo Klaus-Dieter und andere.
erstmal danke für deine ANtwort, auch wenn es nicht ganz das richtige für mich ist.
Ich weiß ja noch nicht, welche Zeilen gelöscht werden müssen.
Das sind nur die Zeilen, in denen ein " - " steht oder die eine negative Zahl enthalten.
Daher meine abfrage.
Alle anderen Daten sollen erhalten bleiben
Und ich würde dieses Problem auch möglichst ohne Activecell oder derartiges lösen.
Weiß soch noch jemand ein andere Lösung?
Gruß Maike
Anzeige
AW: For each löscht... aber nicht alles!
09.01.2006 12:53:39
Ramses
Hallo
bei VBA-Gut sollte das aber kein Problem sein
For Zeile = 15 To 1 Step -1
If Cells(Zeile,1) = "-" Then
Cells(Zeile,1).ClearContents
oder
Rows(Zeile).Delete
End if
Next Zeile
Gruss Rainer
AW: For each löscht... aber nicht alles!
09.01.2006 13:07:24
Maike
Hallo Rainer.
Deine Lösung ist bei VBA-gut auch eigentlich nicht das Problem.
Danke, dass du sie trotzdem gepostet hast.
Und weiterhin wollte ich gerne 2 dinge anmerken:
1. Man kann leider nichts auswählen, das zwischen "VBA nur mit Rekorder" und "VBA gut" liegt. und ich bin eher gut als völlig unbedarft oder perfekt. Daher die einteilung in Verbindung mit dieser Frage.
2. hätte ich es einfach nur gerne mit Objekten gelöst. Einfach so, aus prinzip. Und vor allem hätte ich gerne gwusst, ob es bei der Behandlung von Objekten die Möglichkeit gibt, das vorherige oder nächste Objekt zu verwenden.
Trotzdem nochmal danke für deine Aufmerksamkeit und Hilfe, werde es dann wohl so lösen müssen.
Gruß Maike
Anzeige
AW: For each löscht... aber nicht alles!
09.01.2006 13:13:57
Ramses
Hallo
"...hätte ich es einfach nur gerne mit Objekten gelöst. ..."
Cells() ist auch ein Object
Was verstehst du darunter ?
Gruss Rainer
Was ist ein objekt
09.01.2006 13:47:18
Maike
hallo Rainer.
Ich dachte bei"objekt" eigentlich an den Datentyp.
Weißt du evtl. trotzdem, ob es sowas wie Object.next / previous oder derartiges gibt?
Gruß Maike
AW: Was ist ein objekt
09.01.2006 14:04:51
Ramses
Hallo
"Previuos" und "Next" sind Methoden EINZELNER Objekte, die stehen aber nicht in jedem Object zur Verfügung.
"...oder derartiges gibt?..."
Sorry, keine Ahnung was du meinst
Gruss Rainer
AW: oder negative Zahl
09.01.2006 13:12:03
Harald
Hi,
die negativen Zahlen sollen doch auch weg, oder ? ;-))
if left(cells(Zeile, 1), 1)= "-"
Gruss Harald
Anzeige
AW: oder negative Zahl
09.01.2006 13:16:26
Ramses
Hallo Harald
dann aber schon lieber mit
If Cells(Zeile,1) 

AW: oder negative Zahl
09.01.2006 13:48:54
Harald
Jau...mit Formatierung hab ich nicht getestet.
Dann muss eine Oder-Abfrage her um Beides abzudecken.
Gruss Harald
AW: oder negative Zahl
09.01.2006 13:59:54
Maike
Hallo Harald und Rainer
Ich benutze jetzt das:

Sub LueckenhafteMesswerteEntfernen()
For i_y = v_EndeSpalteA To 8
If (Cells(i_y, 1).Value = "-" Or Cells(i_y, 1).Value < 0) Then
Rows(i_y).Delete
ElseIf (Cells(i_y, 2).Value = "-" Or Cells(i_y, 2).Value < 0) Then
Rows(i_y).Delete
ElseIf (Cells(i_y, 3).Value = "-" Or Cells(i_y, 3).Value < 0) Then
Rows(i_y).Delete
End If
Next
End Sub

Damit werden alle 3 zu bearbeitenden Spalten "gleichzeitig"(ihr wisst schon was ich meine) überprüft.
Nochmals Danke
Gruß Maike
Anzeige
Danke für Rückmeldung owT
09.01.2006 14:21:12
Harald
Gruss Harald
zu voreilig
09.01.2006 14:48:59
Maike
War ich wohl etwas zu voreilig.
Natürlich muss hinter der For-Schleife noch der Zusatz " Step - 1 " stehen!!!!!!
Gruß Maike

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige