Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Userform listbox add und remove item prob

Betrifft: Userform listbox add und remove item prob von: Günter
Geschrieben am: 04.11.2014 19:09:47

Hallo,

Ja, ich schon wieder ;)
Ich habe noch Probleme mit der von Franz erstellten Userform.
Eine Suchfunktion mit Anzeige in einer Listbox.
Tips durch google ergeben für mich keine Lösung, da ich irgendwie
bei diesen "Listeinträgen" noch garnicht durchsteige.

Folgendes:
Eine Userform; Sucheingabefeld und Listbox
Nun wäre es optimal, das ein Eintrag hinzugefügt oder gelöscht werden
könnte, ohne das die Userform neu gestartet werden muss.

https://www.herber.de/bbs/user/93549.xls

Gruss,
Günter

  

Betrifft: AW: Userform listbox add und remove item prob von: Daniel
Geschrieben am: 04.11.2014 19:40:14

Hi

geh doch mal den Ablauf mal genau durch:
1. .RemoveItem (.ListIndex + 1)
2. Rows(lbxFund.ListIndex + 1).Delete Shift:=xlDown

wenn du zuerst den selektierten Eintrag löschst, dann ist er weg und damit gibt es auch keinen selektierten Eintrag mehr der Listindex ist -1!
Damit kannst du ihn auch nicht mehr abfragen, wenn du die entsprechende Zeile löschen willst.

entweder musst du hier die Reihenfolge tauschen und zuerst die Zeile in der Tabelle löschen und den Eintrag in der Listbox ganz am Schluss, wenn du den Listindex nicht mehr benötigtst, oder du musst dir den ListIndex in einer Variablen merken, wenn die Listbox zuerst bereinigen willst.

noch ein weitere Denkfehler deinerseits (der aber keine Folgen hat):
nach dem Löschen einer Zeile ist der Verschiebeparameter: xlDown Unsinn.
Entweder xlUp oder einfach weglassen, weil beim Löschen einer ganzen Zeile gibts nur eine mögliche Verschieberichtung der nachfolgenden Zellen.

Gruß Daniel


  

Betrifft: AW: Userform listbox add und remove item prob von: Günter
Geschrieben am: 04.11.2014 23:02:23

Hallo Daniel,

Nachdem die Zeile gelöscht wird, wird beim Select des Listbox-Eintrags
immer noch die ursprüngliche Zeile aktiviert.
Irgendwie müsste nach dem Löschen der Zeile die Listbox neu "hochgefahren" werden.

ActiveCell.EntireRow.Delete   'Die Zeile der aktiven Zelle löschen
With lbxFund
.RemoveItem (.ListIndex + 1) 'fehlerhafte Löschung in der Listbox
End With
Wird wohl doch keinen anderen Weg geben, als die Userform neu zu starten.
Aber falls noch jemand einen Vorschlag machen möchte, lass ich mal noch offen.

Gruss
Günter


  

Betrifft: Zwar nicht optimal, aber funktioniert super ;) von: Günter
Geschrieben am: 07.11.2014 17:51:20

Hallo,
Ich habe eine Lösung gefunden.
besten Dank für die Unterstützung,
Günter

P.S. Bin trotzdem an weiteren Lösungsvorschlägen interessiert.


  

Betrifft: AW: Zwar nicht optimal, aber funktioniert super ;) von: Günter
Geschrieben am: 08.11.2014 10:30:27

Hallo,

Ich möchte doch nochmal meinen Lösungsweg aufzeigen, obwohl ich annehme,
das es bessere Wege gibt, oder jeder hier diesen schon kennt?
Das Problem ist doch oft, das das Repaint für die Userbox (Listbox) nicht funktioniert.
Jetzt habe eine weitere Userform erstellt, die einzig den Zweck hat, kurz die
Kontrolle zu übernehmen und für die Userform1 ein Repaint zu machen.

Private Sub UserForm_Activate()
 UserForm1.Repaint
 Unload Me
End Sub 

Mit Excel 2010, mit 2003 habe ich jetzt nicht getestet.
Die Userforms sind allerdings bei mir jetzt alle auf ShowModal=False gesetzt.
Dieses "Workaround" könnte ja mal einer der Profis kurz überdenken und evtl. eine
einfachere Lösung finden. (kann eine Userform unsichtbar aufgerufen werden?)

Ich lass mal noch hier offen, weil mich Eure Meinung interessiert.

Gruss
Günter


 

Beiträge aus den Excel-Beispielen zum Thema "Userform listbox add und remove item prob"