Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1016to1020
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
Mehrere Datensätze löschen
24.10.2008 21:49:00
Frank
Hallo Excelfreaks!!!
In einer Userform befindet sich ein Listenfeld, in diesem werden alle Suchtreffer oder auch einzelne Suchtreffer angezeigt. Mit folgendem Code werden einzelne Datensätze nach erfolgtem Klick darauf gelöscht. Wie muss ich den Code erweitern, dass ich mehrere Datensätze gleichzeitig markieren kann um sie dann zu löschen? Zuvor sollte noch nachgefragt werden ob ich denn wirklich löschen will!
Mein Code:

Sub Datensatz_löschen()
Dim lng As Long
Dim i As Integer
Application.ScreenUpdating = False
With FrmHinweise
.ListBox1.Clear
Sheets("Hinweise").Activate
i = 0
For lng = 3 To ActiveSheet.UsedRange.Rows.Count
If InStr(LCase(Cells(lng, 2).Value), LCase(.TextBox1.Value)) > 0 Then
.ListBox1.AddItem Cells(lng, 2).Value
.ListBox1.Column(1, i) = Cells(lng, 3).Value
.ListBox1.Column(2, i) = Cells(lng, 4).Value
.ListBox1.Column(3, i) = Cells(lng, 5).Row
i = i + 1
Else
End If
Next lng
End With
FrmHinweise.Label4.Caption = FrmHinweise.Label1.Caption
FrmHinweise.Label5.Caption = FrmHinweise.Label2.Caption
FrmHinweise.Label6.Caption = FrmHinweise.Label2.Caption
Application.ScreenUpdating = True
Dim zelle As Range
Dim sBegriff As Date
sBegriff = CDate(TextBox1)
If sBegriff = 0 Then Exit Sub
Set zelle = Worksheets("Hinweise").Columns(2) _
.Find(sBegriff, LookAt:=xlWhole)
If zelle Is Nothing Then
MsgBox "Suchbegriff wurde nicht gefunden!"
Else
zelle.Select
Selection.ClearContents
zelle.Offset(0, 1).Select
Selection.ClearContents
zelle.Offset(0, 2).Select
Selection.ClearContents
End If
ListBox1.Clear
FelderLöschen
End Sub


Wer kann helfen? Allen Helfern bereits jetzt mein allerherzlichster Dank!!!
Gruß Frank H.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Datensätze löschen
26.10.2008 13:21:00
Dirk
Hallo Frank,
hab mal was an Deinem Macro geaendert.

Sub Datensatz_löschen()
Dim lng As Long
Dim i As Integer
Application.ScreenUpdating = False
With FrmHinweise
.listbox1.Clear
Sheets("Hinweise").Activate
i = 0
For lng = 3 To ActiveSheet.UsedRange.Rows.Count
If InStr(LCase(Cells(lng, 2).Value), LCase(.TextBox1.Value)) > 0 Then
.listbox1.AddItem Cells(lng, 2).Value
.listbox1.Column(1, i) = Cells(lng, 3).Value
.listbox1.Column(2, i) = Cells(lng, 4).Value
.listbox1.Column(3, i) = Cells(lng, 5).Row
i = i + 1
Else
End If
Next lng
End With
FrmHinweise.Label4.Caption = FrmHinweise.Label1.Caption
FrmHinweise.Label5.Caption = FrmHinweise.Label2.Caption
FrmHinweise.Label6.Caption = FrmHinweise.Label2.Caption
Application.ScreenUpdating = True
Dim zelle As Range
Dim sBegriff As Date
sBegriff = CDate(TextBox1)
If sBegriff = 0 Then Exit Sub
Set zelle = Worksheets("Hinweise").Columns(2) _
.Find(sBegriff, LookAt:=xlWhole)
if Zelle = nothing then
MsgBox "Suchbegriff wurde nicht gefunden!"
goto cleanUp
end if
'Generate a list of the selected items
With listbox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
msg = msg & .List(i) & vbNewLine
End If
Next i
End With
If msg = vbNullString Then
'If nothing was selected, tell user and let them try again
MsgBox "Nothing was selected!  Please make a selection!"
goto retrySelect
Else
'Ask the user if they are happy with their selection(s)
Check = MsgBox("You selected:" & vbNewLine & msg & vbNewLine & _
"Are you happy with your selections?", _
vbYesNo + vbInformation, "Please confirm")
If msg = vbYes Then
For i = 1 To listbox1.ListCount
If .Selected(i) Then
Range(.List(i)).ClearContents
Range(.List(i)).Offset(0, 1).ClearContents
Range(.List(i)).Offset(0, 2).ClearContents
End If
Next i
End If
End If
exit sub
CleanUp:
listbox1.Clear
FelderLöschen
End Sub


Hab's nicht getestet & waere einfacher wenn Du deine Tabelle hochladen wuerdest, aber der Ansatz waere in etwa so. Musst am Anfang nachdem das Userform verlassen wurde die Listbox bestehen lassen, da sonst die Auswahl verloren geht. Und welcher event veranlasst, das der click auf einen listboxeintrag zum loeschen fuehrt?
Lass' mal hoeren, obs funktioniert.
Gruss
Dirk aus Dubai

Anzeige
AW: Mehrere Datensätze löschen
26.10.2008 15:32:25
Frank
Hallo Dirk!
Vielen Dank für dein Interesse an meinem Problem!
Das mit dem Hochladen funktioniert nicht, scheitert an der Dateigröße!
Zuerst änderte ich in der ListBox - Eigenschaft die Multselect Eigenschaft, dann kopierte ich deinen Code in meine Datei und erhielt folgende Fehlermeldung beim Testen.
Unzulässige Verwendung eines Objekts. In der Zeile "If zelle = Nothing Then wird Nothing blau hinterlegt.
Ich habe null Ahnung aber vielleicht du! Danke im Vorraus!!!
Gruß Frank H.
AW: Mehrere Datensätze löschen
26.10.2008 16:19:53
Leonhard.Stempfle
Hallo Frank,
ich hatte auch schon mal dieses Problem.
Damals habe ich das nur aufwendig hingewurstelt.
Die Sache interesiert mich und möchte dir deswegen eine Adresse weitergeben um deine Datei hochzuladen.
Wäre schön wenn ich die mal ausprobieren kann.
http://www.hostarea.de/
Gruß Leo
Anzeige
AW: Mehrere Datensätze löschen
26.10.2008 18:07:27
Frank
Hallo Leo!
Die Datei ist 15 MB groß, so dass es nicht funktionierte!!!
Solltest du trotzdem Interesse haben, dann teile mir doch bitte deine E-Mail Adresse mit und ich schicke dir die Datei! Wundere dich aber nicht, denn sie ist von mir als Laien zusammen gebastelt wurden und wird Excel-Profis nicht unbedingt üpberzeugen, aber ich lerne immer noch!!!
Gruß Frank H.
AW: Mehrere Datensätze löschen
27.10.2008 11:23:00
Leonhard.Stempfle
Hallo Frank,
meine E-Mail Adresse Leonhard.Stempfle@t-online.de
Danke schon mal im voraus.
Gruß Leo
AW: Mehrere Datensätze löschen
28.10.2008 07:20:00
Dirk
Hallo Frank,
kannst Du mal kurz beschreiben, was in Deiner Userform eingegeben werden muss, damit Dein Macro ablaeuft. Ich habe mal eine UF gebastelt mit den referenzen aus dem Macro und ich bekomme fuer Dein Macro genau die selbe Fehlermeldung wg Nothing. Warscheinlich muss in der Textbox1 ein Datum eingegeben werden.
Falls das mit dem Markieren und loeschen einzelner Eintraege funktioniert, ist das selbe auch mit mehreren Eintraegen moeglich.
Ggf. Kannst Du ja mal die Userform hochladen.
Gruss\
\
Dirk aus Dubai
Anzeige
AW: Mehrere Datensätze löschen
28.10.2008 17:46:00
Frank
Hallo Dirk!
Im Code den ich zuerst ins Forum gestellt habe wird die Einzelsuche per Datum in der TextBox1 ausgelöst.
Für die Suche aller vorhandenen Datensätze wird folgender Code (Ausschnitt) verwendet:
Dim zelle As Range
Dim sBegriff As String
sBegriff = TextBox1.Value
If sBegriff = "" Then Exit Sub
Set zelle = Worksheets("Hinweise").Columns(2) _
.Find(sBegriff, LookAt:=xlWhole)
If zelle Is Nothing Then
MsgBox "Suchbegriff wurde nicht gefunden!"
Else
MsgBox "Suchbegriff befindet sich in Zelle " & _
zelle.Address
End If
zelle.Select
End Sub
Ich hoffe das reicht dir? Mit dem Hochladen bin ich überfordert! Wenn du mit einer durch 'nen blutigen Laien (wenn ich euch alle so kennen gelernt habe) angefertigten Datei, welche 15 MB groß ist dich auseinandersetzen willst, dann teile mir einfache deine E-mail Adresse mit und ich schicke dir die Datei!!
Danke und freundl. Grüße aus der Hauptstadt sagt Frank H.
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige