hey alex,
Hallo USchi,
danke. das war ja nen blöder fehler. da wär ich bestimmt nie
drauf gekommen 
Nichts zu danken. Dafür sind wir ja da
Und auf den Fehler waerst du sicherlich frueher oder später auch darauf gekommen. Spätestens haettest du das Macro im Step by Step Modus laufen lassen 
Du kannst dich beruhigen. Auch mir passieren unmengen von Fehlern und manchmal sehe ich sie auch erst nach Wochen oder garnicht 
kannste mir nochmal helfen?
Ja klar, sofern ich es weiss
Wie gesagt mit VBA schaut es bei mir schlecht aus. VB dagegen schon nen bissl besser 
quelltext sieht jetzt bissel anders aus:
Na dann schauen wir mal 
For i = .ListCount - 1 To 0 Step -1 'Schleife, wegen
Multiselect
If .Selected(i) Then
auswahl = .List(ListBox1.ListIndex)
Tabelle2.Activate 'ListBox-Auswahl in tabelle suchen
und Zelle aktivieren
Columns(„A:A“).Find(what:=auswahl, _
After:=Range(„A1“), LookIn:=xlFormulas,
lookat:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
'ganze Zeile markieren und löschen
intRow = ActiveCell.Row
Rows(intRow).Delete
Range(„a1“).Activate
’ Eintrag auch sofort aus ListBox löschen
ListBox1.RemoveItem (ListBox1.ListIndex)
'ListBox1.ListIndex = 0
End If
Next i
ich versuche folgendes:
ausgewählte einträge der listbox sollen in der zugehörigen
tabelle gelösch werden.
das funktioniert soweit auch.
Das ist doch schon einmal super 
nur dass jeweils die markierten
einträge und alle dazwischen gelöscht werden.
ich hab schonmal den lisindex auf -1,0,1 gesetzt und da hat er
mal die einträge vor und nach den markierten gelöscht. aber
nur die markierten einträge löscht er nur, wenn einer
ausgewählt ist…
Richtig. Da hast du einen kleinen Schönheitsfehler drinnen, den du auf 2 Arten beseitigen kannst 
Nehmen wir einmal die wichtigsten Dinge auseinander 
For i = .ListCount - 1 To 0 Step -1
Richtig! Auch das du von hinten anfangen musst zu zaehlen 
If .Selected(i) Then
Wenn der Eintrag I !!! Selectiert ist dann -> Richtig 
auswahl = .List(ListBox1.ListIndex)
Tabelle2.Activate
Columns(„A:A“).Find(what:=auswahl, _
After:=Range(„A1“), LookIn:=xlFormulas,
lookat:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
intRow = ActiveCell.Row
Rows(intRow).Delete
Range(„a1“).Activate
Da kann ich dir nichts zu sagen. Aber du sagtest ja das das klappt. Also Richtig 
ListBox1.RemoveItem (ListBox1.ListIndex)
Und genau da ist der Hund begraben!!!
End If
Next i
So da ich wieder mal in Schreiblaune bin *lächel* Eine kurze Erläuterung!
Du füllst ja deine Liste. Sagen wir einmal dort stehen 21 eintraege drinnen. Nun wird jeder ungerade Eintrag selektiert ( 1,3,5,7,9 etc)
Der makierte Eintrag ist sagen wir mal der 1! Also der mit dem Index 0
Nun durchlaeufst du die Liste und fragst jeden Eintrag von hinten ab.
Der erste hat den Index 20 und somit nicht selektiert. Ergo macht deine Routine auch nicht. Danach beginnt die Schleife wieder von vorne und es kommt der Eintrag mit dem Index 19 dran, der Selektiert ist.
Das bedeutet das die IF Bedingung erfuellt ist. Es werden dann auch Ordnungsgemaess die Daten aus der Tabelle gelöscht!
Nun hast du aber die Anweisung
ListBox1.RemoveItem (ListBox1.ListIndex)
stehen. Wir hatten ja gesagt es war der erste Eintrag makiert ( Blau unterlegt) das bedeutet das Der Listindex 0 ist! Mit deiner Anweisung löschst du nun das erste Element! Bei einen weiteren Versuch würdest du eine Fehlermeldung bekommen ( Zumindest bei VB) es seidenn du hast ein On Error … in deiner Routine stehen 
Um die Sache zu lösen, gibt es nun 2 Wege. Entweder makierst du das zu löschende Element und löschst es dann mit deiner variante. Oder du gibst die Position an, welches du ja anhand von I weisst ( Diese Variante würde ich vorziehen)
Im Klartext würde es so ausschauen
list1.listindex=i
list1.removeitem i
'oder
List1.RemoveItem i
Wie du siehst ist es mal wieder nur ein Fluechtigkeitsfehler 
Ändere deinen Source mal wiefolgt ab. Danach sollte es klappen 
For i = .ListCount - 1 To 0 Step -1
If List1.Selected(i) Then
auswahl = List1.List(List1.ListIndex)
Tabelle2.Activate
Columns("A:A").Find(what:=auswahl, \_
After:=Range("A1"), LookIn:=xlFormulas,
lookat:=xlPart, \_
SearchOrder:=xlByRows, SearchDirection:=xlNext, \_
MatchCase:=False).Activate
intRow = ActiveCell.Row
Rows(intRow).Delete
Range("a1").Activate
List1.RemoveItem (i)' Diese Zeile so abändern :wink:
End If
Next i
Vorraussetzung ist das deine Liste List1 sich schimpft.
Mir ist gerade aufgefallen das du die Liste einmal nur mit einem Punbkt ansprichst, was auf ein With … End with hinweist und dann wiederrum mit dem Objectnamen
Sollte ich Recht haben, so entscheide dich mal was du magst. Schaut sonst unschön aus! 
…ich mag langsam keine listboxen mehr 
Ach Quatsch, nur nicht verzweifeln! Sind doch nur Faselfehler 
mfg uschi
MFG Alex
[MOD] Pre - Tag eingefügt
PS: Uschi, wenn du Code postest so verwende bitte in den PRE Tag.
Um diesen zu nutzen mache es wiefolgt
Dein Source
Die 1 jeweils weglassen.( Also nur PRE und /PRE
Die habe ich nur gemacht damit du siehst was ich meine 
Schaut auch besser aus
und Rainer hat nicht soviel Stress 