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

Code ergänzen zum Löschen

Code ergänzen zum Löschen
06.06.2007 17:25:58
Cordula
Hallo Excel-Freunde,
folgenden Code habe ich aus diesem Forum, der auch funktioniert:

Sub Zeile_weg_wenn()
Dim Suche As String
Dim z As Long, lz As Long, i As Long
Application.ScreenUpdating = False
Suche = Application.InputBox("Suchbegriff eingeben!", "Suche", "Basis_122")
z = ActiveSheet.UsedRange.Row
lz = z + ActiveSheet.UsedRange.Rows.Count - 1
For i = lz To z Step -1
If Application.CountIf(Rows(i), Suche) > 0 Then
Rows(i).Delete
End If
Next
Application.ScreenUpdating = True
End Sub


Nun möchte ich aber gerne, das grundsätzlich nur in der Spalte A gesucht und gelöscht wird. Zudem möchte ich eine Sicherheitsabfrage einbauen, ob der gesuchte Wert wirklich gelöscht werden soll.
Wäre super toll, wenn Ihr diesen Code ergänzen würdet. Vorab schon einmal vielen Dank!
Liebe Grüße
Cordula

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code ergänzen zum Löschen
06.06.2007 17:58:00
fcs
Hi Cordula,
mit den folgenden Anpassungen wird nur in Spalte A gesucht und die Zellen in Spalte A entsprechend nach oben verschoben.
Falls du bei jeder einzelnen Fundstelle das Löschen bestätigen möchtest, dann muss die Sicherheitsabfrage innerhalb der If-Bedingung in der For-Next-Schleife eingebaut werden.
Guß
Franz

Sub Zeile_weg_wenn()
Dim Suche As String
Dim z As Long, lz As Long, i As Long
Application.ScreenUpdating = False
Suche = Application.InputBox("Suchbegriff eingeben!", "Suche", "Basis_122")
z = ActiveSheet.UsedRange.Row
lz = z + ActiveSheet.UsedRange.Rows.Count - 1
If MsgBox("Zellen mit Begriff in Spalte A: " & Suche & " wirklich löschen?", vbOKCancel, _
"Zellen mit Suchbegriff löschen") = vbOK Then
For i = lz To z Step -1
If Cells(i, 1) = Suche Then
Cells(i, 1).Delete shift:=xlShiftUp
End If
Next
End If
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Code ergänzen zum Löschen
06.06.2007 21:58:00
fcs
Hallo Cordula,
mit diesen weiteren Anpassen wird die Suche auch nach dem Abbrechen im ersten Dialog direkt beendet.
Gruß
Franz

Sub Zeile_weg_wenn()
Dim Suche As Variant
Dim z As Long, lz As Long, i As Long
Application.ScreenUpdating = False
Suche = Application.InputBox("Suchbegriff eingeben!", "Suche", "Basis_122")
If Not Suche = False Then 'Abbrechen wurde nicht gewählt
z = ActiveSheet.UsedRange.Row
lz = z + ActiveSheet.UsedRange.Rows.Count - 1
If MsgBox("Zellen mit Begriff in Spalte A: " & Suche & " wirklich löschen?", vbOKCancel, _
"Zellen mit Suchbegriff löschen") = vbOK Then
For i = lz To z Step -1
If Cells(i, 1) = Suche Then
Cells(i, 1).Delete shift:=xlShiftUp
End If
Next
End If
End If
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Code ergänzen zum Löschen
07.06.2007 09:43:09
Cordula
Guten Morgen Franz,
dein geänderter Code funktioniert einwandfrei. Toll, Danke. Kannst du mir vielleicht nochmal den Code ergänzen auf: Ist der gesuchte Wert nicht vorhanden, soll eine Meldung erscheinen mit der Option"Wiederholen" "Abbrechen". Tut mir leid, dass ich so häppchenweise Änderungen haben möchte, aber zu Anfang waren mir diese leider nicht klar.
Danke schon mal im voraus für deine Hilfe.
Liebe Grüße
Cordula

@Franz
07.06.2007 17:08:00
Cordula
Hallo Franz,
nochmals Danke für deine Hilfe. Da du heute wohl nicht online bist, habe ich die gewünschte weitere Änderung (Meldung wenn Suchwert nicht gefunden wurde) noch einmal ins Forum gestellt.
Liebe Grüße
Cordula

Anzeige
AW: Code ergänzen zum Löschen
06.06.2007 18:09:37
Matthias
Hallo Cordula
Option Explicit

Sub Zeile_weg_wenn()
Dim Suche As String
Dim Frage As String
Dim z As Long, lz As Long, i As Long
Application.ScreenUpdating = False
Suche = Application.InputBox("Suchbegriff eingeben!", "Suche", "Basis_122")
z = ActiveSheet.Range("A:A").Row
lz = z + ActiveSheet.Range("A:A").Rows.Count - 1
For i = lz To z Step -1
If Application.CountIf(Rows(i), Suche) > 0 Then
Frage = InputBox("Zeile wirklich löschen?", , "ja")
If Frage  "ja" Then Exit Sub
Rows(i).Delete
End If
Next
Application.ScreenUpdating = True
End Sub


Gruß Matthias

Anzeige
AW: Code ergänzen zum Löschen
06.06.2007 19:04:00
Cordula
Hallo fcs und Matthias, vielen Dank für die Änderung. Beide funktionieren auch, wobei ich mich für den Code von fcs entschieden habe, der geht "irgendwie" schneller. Aber Matthias: vielen vielen Dank für deine Mühe. Nun zu fcs seinem Code: das Einzige was nicht so richtig funzt ist, wenn ich im 1. Eingabefenster bin, um den Wert einzutragen, dann aber entscheide, mit ABBRECHEN hier wieder rauszugehen, kommt dann trotzdem die Abfrage auf "... wirklich löschen...". Wie kann ich das umgehen?
Vielen Dank schon einmal für die Hilfe
Liebe Grüße
Cordula

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige