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

Zeile löschen die dem Kriterium entspricht

Zeile löschen die dem Kriterium entspricht
02.03.2005 00:11:08
Drazen
Hallo nochmal,
hab jetzt einen neuen Thread eröffnet da dies vieleicht auch anderen Suchenden helfen könnte.
Ich möchte eine ganze Zeile löschen die dem SuchKriterium entspricht:
Dim s1 As Long
Dim l1 As Integer
l1 = lblKey.Caption
With Worksheets("BESTELLUNG").Range("AB:AB")
s1 = .Find(what:=l1, lookat:=xlWhole, LookIn:=xlValues)
Rows(s1).Delete
End With
End If
Habe es so versucht, klappt aber gar nicht, gelöscht wird zwar eine Zeile aber immer die Letzte und nicht die in der sich das zu suchende l1 befindet, wer kann kurz helfen?
Grüsse
Drazen

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

Betreff
Datum
Anwender
Anzeige
AW: Zeile löschen die dem Kriterium entspricht
02.03.2005 00:31:56
Bert
Hi,
abgesehen davon, dass da ein End If zuviel ist, sollte es gehen, wenn in lblKey ein
numerischer Wert steht. Besser, du konvertierst ihn. Außerdem brauchst du eine
Fehlerbehandlung, falls nichts gefunden wird.

Sub loeschen()
Dim s1 As Long
Dim l1 As Long
l1 = CLng(lblKey)
With Worksheets("BESTELLUNG").Range("AB:AB")
On Error GoTo BERT
s1 = .Find(what:=l1, lookat:=xlWhole, LookIn:=xlValues)
Rows(s1).Delete
End With
Exit Sub
BERT:
MsgBox l1 & " wurde nicht gefunden!     "
End Sub

Bert
AW: Zeile löschen die dem Kriterium entspricht
02.03.2005 00:45:46
Drazen
Hi Bert,
ja an der Konvertierung lag es tatsächlich, jetzt klappt es top, wenn wir schon dabei sind ( ich dachte du wärst schon ins Bett, aber hier schläft anscheinend nie jemand :) )
könnte ich noch was zusätzliche erfahren?
Them sind SpinButtons, ich möchte mittels SpinButton innerhalb einer mit Autofilter gefilterten Tabelle die Daten blättern.
Bisher habe ich es so versucht:
Sub UserForm_Initialize()
If Rows.Hidden = False Then
iSpin = 2
lblArtikel = Cells(iSpin, 4)
txtMenge = Cells(iSpin, 23)
End Sub

Private Sub SpinButton1_SpinUp()
iSpin = iSpin - 1
If iSpin < 2 Then
iSpin = Cells(Rows.Count, 1).End(xlUp).Row
End If
If Rows.Hidden = False Then
lblArtikel = Cells(iSpin, 4)
txtMenge = Cells(iSpin, 23)
End If
End Sub


Private Sub SpinButton1_Spindown()
iSpin = iSpin + 1
If iSpin > Cells(Rows.Count, 1).End(xlUp).Row Then
iSpin = 2
End If
If Rows.Hidden = False Then
lblArtikel = Cells(iSpin, 4)
txtMenge = Cells(iSpin, 23)
End If
End Sub

Klappt aber nicht so besonders, es werden zwar nur die sichtbaren Datensätze angezeigt, geblättert wird aber durch alle, also man muss 10x klicken um ans nächste zu kommen, gibts da eine andere Lösung, verspreche ich werde heute nicht mehr nörgeln.
Grüsse
Drazen
Anzeige
AW: Sorry, funzt immer noch nicht
02.03.2005 00:52:19
Drazen
Hi Bert,
war wohl etwas zu voreilig, jetzt wird immer der letze Datensatz gelöscht, ich checks nicht...
Grüsse
Drazen
AW: Sorry, funzt immer noch nicht
02.03.2005 00:57:10
Bert
Hi,
was steht in lblKey? Ich kann das nicht nachvollziehen.
Bert
AW: Sorry, funzt immer noch nicht
02.03.2005 01:05:15
Drazen
Hi,
na die Zahl aus dem letzten Thread, ZufallsZahl.
Keinen Schimmer mehr, meine Methode Try and learn funktioniert hier nicht...
Grüsse
Drazen
AW: Sorry, funzt immer noch nicht
02.03.2005 10:02:23
MichaV
Moin Drazen,
ich misch mich mal wieder ein. Probier mal:
on Error goto Bert
s1 = Range("AB:AB").Find(what:=l1, lookat:=xlWhole, LookIn:=xlValues).Row
Rows(s1).Delete
DoEvents
'bis hier die erste Zeile gefunden und gelöscht
'nun die nächsten Zeilen finden und löschen
While 1 = 1 'ist zwar etwas "hart", aber durch Berts Fehlerroutine klappts super.
Rows(Range("A:A").FindNext.Row).Delete
Wend
Exit Sub
Bert:
'Wenn Du noch einen Zähler für die Anzahl der gelöschten Zeilen einbaust kannst Du die Ausgabe der MsgBox verhindern.
Anzeige
AW: Sorry, funzt immer noch nicht
02.03.2005 10:06:51
MichaV
Besser:
On Error GoTo BERT
Dim blnGelöscht As Boolean
s1 = Range("A:A").Find(what:=l1, lookat:=xlWhole, LookIn:=xlValues).Row
Rows(s1).Delete
blnGelöscht = True
While 1 = 1
Rows(Range("A:A").FindNext.Row).Delete
Wend
Exit Sub
BERT:
If Not blnGelöscht Then MsgBox l1 & " wurde nicht gefunden! "
Gruß!
AW: Zeile löschen die dem Kriterium entspricht
02.03.2005 09:50:26
Volker
Hallo Drazen,
Du muß deiner Variablen s1 schon einen Zeilenindex zuweisen und kein Rangeobjekt oder so was. Ich wette, wenn Du Deinen Code mal durchsteppst, ist s1 leer oder jedenfalls keine Ganzzahl, sonder eben genau der Inhalt der Zelle, nach dem Du gesucht hast.
Versuchs mal damit:

Sub s()
Dim s1 As Long
Dim l1 As Integer
l1 = lblKey.Caption
'With Worksheets("BESTELLUNG").Range("AB:AB")
s1 = Columns("AB").Find(what:=l1, lookat:=xlWhole, LookIn:=xlValues).Row
Rows(s1).Delete
'End With
End Sub

Gruß
Volker
Anzeige
AW: Zeile löschen die dem Kriterium entspricht
02.03.2005 10:56:35
Drazen
Hi Volker,
genau darin war der Fehler anscheinend, die Variable s1 braucht doch einen ZeilenIndex um zu wissen welche Zeile genau gemeint ist, funktioniert wenn alle Daten sichtbar sind UND wenn ein Autifilter gesetzt ist.
Vielen Dank.
Grüsse
Drazen
Na also...
02.03.2005 11:10:18
Volker
Danke für die Rückmeldung
Ich dachte schon, Du hättest meinen Beitrag gar nicht gelesen und wollte schon aufgeben.
Eine Fehlerroutine solltest Du aber tatsächlich noch einbauen, das hatte ich vergessen. Sonst hängt sich das Makro auf, wenn die Suche ins Leere geht:

Sub s()
Dim s1 As Long
Dim l1 As Integer
l1 = lblKey.Caption
On Error GoTo fehler
s1 = Columns("AB").Find(what:=l1, lookat:=xlWhole, LookIn:=xlValues).Row
Rows(s1).Delete
Exit Sub
fehler:
MsgBox "Suchtext nicht gefunden"
End Sub

Gruß
Volker
Anzeige
AW: Na also...
02.03.2005 11:17:00
Drazen
Hi Volker,
ein Fehler ist total unwahrscheinlich da jeder dieser Datensätze eine Zahl verpasst bekommt und ich diese ja in die UF mit einlese, wenn keine Zahl dabei ist bekomme ich den zu löschenden Datensatz gar nicht angezeigt, vielen Dank noch mal.
Kennst du dich mit SpinButtons aus?
Grüsse
Drazen
AW: Na also...
02.03.2005 12:31:47
Volker
Hallo Drazen,
hab im Moment nicht viel Zeit.
schau Dir mal den Anhang an, da ist ein Bsp. drin.
Vielleicht hilft Dir das schon weiter
https://www.herber.de/bbs/user/19076.xls
Bis später
Volker
Anzeige
AW: Danke Dir... o.T
02.03.2005 12:35:44
Drazen

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige