Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1144to1148
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
Möglichkeit Range an Listbox zu übergeben?
Martin
Hallo Excelfreunde,
ich verwende eine UserForm als Suchmaske, die mir aus hunderten von Zeilen das Suchergebnis über eine Listbox anzeigt. Die Eigenschaft der UserForm ShowModal ist auf "False" gestellt, daher können im Hintergrund also weiterhin die Daten bearbeitet (z. B. Zeilen hinzugefügt / gelöscht) werden.
Meine Frage: Kann ich einem Listbox-Eintrag (wie einem Array z.B. "Set ArrBereich(5) = Cells(15,3)") eine Zelle zuweisen? Mein Ziel wäre es, dass ich beim Klick auf den Listbox-Eintag dann in die ensprechende Zeile springe. Im Augenblick habe ich das über eine Suchfunktion mit Find gelöst, aber da manche Datensätze doppelt vorkommen, ist das keine optimale Lösung.
Viele Grüße
Martin
Userbild

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Möglichkeit Range an Listbox zu übergeben?
21.03.2010 22:46:13
Uduuh
Hallo,
wie wird die LB gefüllt?
Evtl. kannst du den Listindex nutzen.
Gruß aus’m Pott
Udo

AW: Möglichkeit Range an Listbox zu übergeben?
21.03.2010 23:04:07
Martin
Hallo Udo,
die Listbox wird ganz einfach nach dem Prinzip "ListBox1.List(0, 0) = Cells(x, y).Text" gefüllt. Mein Wunsch geht in die Richtung "Set Listbox1.List(x, 7) = Cells(x, y)". Ich möchte mit Absicht nicht die Zellenadresse speichern, da diese aufgrund der UserForm-Eigenschaft "ShowModal = False" sich bei Änderungen im Hintergrund ändern könnte.
Viele Grüße
Martin
Beispiel
22.03.2010 02:23:10
Uwe
Hallo Martin,
hier mal ein Beispiel:

'  Modul:  UserForm1  Typ = Userform
Option Explicit
Dim rngFound As Variant
Private Sub CommandButton1_Click()
Dim rngTemp As Range
ReDim rngFound(0) As Range
ListBox1.Clear
For Each rngTemp In Range("A1:A10")
If rngTemp.Value Like TextBox1 Then
ListBox1.AddItem rngTemp.Value
ReDim Preserve rngFound(UBound(rngFound) + 1)
Set rngFound(UBound(rngFound)) = rngTemp.EntireRow
End If
Next rngTemp
End Sub
Private Sub ListBox1_Change()
If ListBox1.ListIndex > -1 Then Application.Goto rngFound(ListBox1.ListIndex + 1)
End Sub
'  Modul:  Modul1  Typ = Allgemeines Modul
Option Explicit
Sub ZeigeForm()
UserForm1.Show 0
End Sub

https://www.herber.de/bbs/user/68702.xls
Gruß Uwe
Anzeige
Vielen Dank, das habe ich gesucht!
22.03.2010 09:17:49
Martin
Hallo Uwe,
ich hatte schon Sorge, dass ich mich Problem unverständlich formuliert hätte. Deine Lösung mit dem "externen" rngFound-Array ist sehr interessant!
Viele Grüße
Martin
AW: ich würde es eventuell so machen...
22.03.2010 09:37:59
Martin
Hallo Tino,
vielen Dank für deine Mühe. Ich muss aber zugeben, dass ich mit dem Code von Uwe besser klarkomme. Ich bin immer für jeden Vorschlag sehr dankbar und weiß, dass du hier im Forum sehr aktiv bist und zu den Profis zählst. Ich freue mich, dass ich hier bei Fragen stets so kompetent beraten werden!
Viele Grüße
Martin
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige