Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1508to1512
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
Inhaltsverzeichnis

Zellinhalt (mehrere Namen) in Listbox markieren

Zellinhalt (mehrere Namen) in Listbox markieren
06.08.2016 23:53:11
Matthias
Hallo an Alle,
Ich habe ein kleines Problem das sich nicht ergoogeln lässt, daher die Bitte um Unterstützung:
Ich habe eine ActiveCell die eine Auswahl von Namen beinhaltet jeweils durch ein Komma getrennt.
Wenn ich auf diese Zelle klicke öffnet sich eine Userform mit Listbox in der sehr viele Namen stehen die nun selektiert werden sollen. Hier hänge ich jetzt... Wie lese ich eine Zelle aus und vergleiche den gesamten Inhalt mit den Listbox Einträgen um diese dann zu markieren?
Vielen Dank für jeden Vorschlag!
Grüße Matthias

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalt (mehrere Namen) in Listbox markieren
07.08.2016 07:46:26
Mullit
Hallo,
probiers mal hiermit:
' ************************************************************** ' Modul: UserForm1 Typ = Klassenmodul des UserForms ' ************************************************************** Option Explicit Private Sub UserForm_Activate() Dim astrArray() As String Dim ialngIndex As Long, lngIndex As Long astrArray = Split(Expression:=Cells(1, 1).Value, Delimiter:=",") With ListBox1 .MultiSelect = fmMultiSelectMulti For ialngIndex = 0 To Ubound(astrArray) For lngIndex = 0 To .ListCount - 1 If astrArray(ialngIndex) = .List(pvargIndex:=lngIndex) Then _ .Selected(pvargIndex:=lngIndex) = True Next Next End With End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12
Gruß, Mullit
Anzeige
AW: Zellinhalt (mehrere Namen) in Listbox markieren
07.08.2016 09:10:50
Matthias
Hallo Mullit,
Das sieht schon mal nicht schlecht aus!
Kleines Problem noch: der erste Name wird nicht erwischt.
Bei Müller,Mayer,Schmidt selektiert es mir nur Mayer und Schmidt in Meiner Listbox.
Bekommen wir das auch noch irgendwie hin?
Tausend Dank!!
Gruß Matthias
Leerzeichen vor/nach Müller ?
07.08.2016 09:53:32
Matthias
Hallo
Bei mir wird Müller angezeigt.
Tabelle1

 A
1Müller,Meier,Schmidt,Schulze,Lehmenn


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Userbild
Gruß Matthias
Anzeige
AW: Leerzeichen vor/nach Müller ?
07.08.2016 10:10:58
Matthias
Liegt vielleicht daran das ich ein Leerzeichen mit drin hab zwischen den Namen!? Müller, Mayer, Schmidt!? Wie löst man das?
Danke!!
mit Substitute ...
07.08.2016 10:28:21
Matthias
Hallo
z.B so:
Dim MyText$
MyText = Application.WorksheetFunction.Substitute(Cells(1, 1), " ", "")
astrArray = Split(Expression:=MyText, Delimiter:=",")
Gruß Matthias
AW: Leerzeichen vor/nach Müller ?
07.08.2016 11:01:45
Mullit
Hallo Matthias,
..ok mit Matthias (L's) Vorschlag sollte es doch klappen und Du kannst die Cells(1, 1).Value Angabe noch durch ActiveCell.Value ersetzen, hatte ich irgendwie überlesen...
Gruß, Mullit
AW: Leerzeichen vor/nach Müller ?
07.08.2016 18:28:11
Matthias
Herzlichen Dank an alle! Ihr seid die Besten! Viele Grüße Matthias
Anzeige
AW: Zellinhalt (mehrere Namen) in Listbox markieren
07.08.2016 14:24:33
Daniel
Hi
das kann man auch etwas einfacher lösen.
Wichtig ist, dass das Trennzeichen (TZ) zwischen den Namen in der Zelle immer gleich ist.
Das Trennzeichen darf auch aus mehreren Zeichen bestehen. (Komma+Leerzeichen)
TZ = ", "
For i = 0 to Listbox1.ListCount - 1
Listbox1.selected(i) = TZ & ActiveCell.Value & TZ like "*" & TZ & Listbox1.List(i) & TZ & "*"
next 
wenn das Trennzeichen unterschiedlich geschrieben sein kann, müsste man es bereinigen und die Leerzeichen vor und nach dem Komma eleminieren:
TZ = ","
TXT = ActiveCell.Value
TXT = Worksheetfunction.Trim(TXT)
TXT = Replace(TXT, " ,", ",")
TXT = Replace(TXT, ", ", ",")
TXT = TZ & TXT & TZ
For i = 0 to Listbox1.ListCount - 1
Listbox1.selected(i) = TXT like "*" & TZ & Listbox1.List(i) & TZ & "*"
next
wenn die LIKE-Funktion unbekannt ist, könnte man auch mit Instr arbeiten:
Listbox1.Selected(i) = Instr(TXT, TZ & Listbox1.List(i) & TZ) > 0

geprüft wird einfach, ob der Listboxwert in der Zelle enthalten ist.
durch die Hinzunahme des Trennzeichens vermeidet man, dass "xxx" bei "abcxxxdef" als enthalten gezählt wird.
Damit erster und letzter Name in der Zelle keine Sonderfälle darstellen, fügt man auch beim Zelltext am Anfang und Ende die Trennzeichen hinzu.
Gruß Daniel
Anzeige
AW: Zellinhalt (mehrere Namen) in Listbox markieren
07.08.2016 18:34:21
Matthias
Hallo Daniel, das wird ja immer besser!
Ich werde es ausprobieren und alles nachvollziehen.
Vielen Dank! Toll wie viele kompetente Menschen sich hier tummeln.
Gruß Matthias

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige