Herbers Excel-Forum - das Archiv
VBA: Markierter Wert aus Listbox in aktive Zelle
Informationen und Beispiele zu den hier genannten Dialog-Elementen:

|
Betrifft: VBA: Markierter Wert aus Listbox in aktive Zelle
von: Moritz
Geschrieben am: 30.09.2003 16:03:24
Hallo,
folgende Fragestellung: Eine 3-spaltige Originalliste wird laufend um neue Projekte erweitert. Auf einem weiteren Arbeitsblatt erscheinen die Projekte in Spalte A verkettet. Nun sollen die Projekte über eine Auswahlliste, sortiert und ohne Leerzeilen dargestellt werden. Klappt mittles der untenstehenden Formel tadellos.
Weiter soll der markierte Wert per Klick auf den Button 'OK' in die aktive Zelle des Arbeitsblatts übertragen werden. Das dazugehörige Formular (ListBoxSort) besteht aus einer ListBox und einem OK Button. Hier komme ich nicht weiter! Was müßte man dem OK Button formeltechnisch mitteilen, um den jeweils markierten Wert per Klick in die jeweils aktive Zelle auf dem Arbeitsblatt übertragen zu können?
Sub ShowTheForm()
ListboxSort.Show
End Sub
-----
Sub SortAndRemoveDupes()
Dim rListSort As Range, rOldList As Range
Dim strRowSource As String
'Clears Hidden sheet Column A ready for list
Sheet1.Range("A1", Sheet1.Range("A65536").End(xlUp)).Clear
'Sets range variable to list we want
Set rOldList = Sheet2.Range("A1", Sheet2.Range("A65536").End(xlUp))
'Uses AdvancedFilter to copy the list to Column A _
of the hidden sheet and remove all dupes
rOldList.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheet1.Cells(1, 1), Unique:=True
'Sets range variable to the new non dupe list
Set rListSort = Sheet1.Range("A1", Sheet1.Range("A65536").End(xlUp))
With rListSort
'Sorts the new non dupe list
.Sort Key1:=.Cells(2, 1), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
'Parses the address of the sorted unique items
strRowSource = Sheet1.Name & "!" & Sheet1.Range _
("A2", Sheet1.Range("A65536").End(xlUp)).Address
Sheet1.Range("A1") = "akanto -- Neu sortierte Projektbudgetliste"
With ListboxSort.ListBox1
'Clears old ListBox RowSource
.RowSource = vbNullString
'Parses new one
.RowSource = strRowSource
End With
End Sub

 |
Betrifft: AW: VBA: Markierter Wert aus Listbox in aktive Zelle
von: ChrisL
Geschrieben am: 30.09.2003 21:10:20
Hallo Moritz
Bin da ehrlich gesagt etwas durcheinander, aber ich interpretiere das Problem jetzt einfach mal wie folgt:
Du möchtest aus einer 3-spaltigen Listbox den markierten Wert in die aktive Zelle übernehmen, Fokus also auf 3-spaltig. Dabei scheint mir dein bestehendes Makro aber lediglich auf eine Spalte zu deuten... jedenfalls etwa wie folgt
ActiveCell = ListBox1.Column(0) & ListBox1.Column(1) & ListBox1.Column(2)
Wenn es doch eine einspaltige ListBox ist, dann so...
ActiveCell = ListBox1
Wenn das Problem ein anderes ist z.B. Multi-Select, dann kannst du dich ja nochmals melden oder besser mal in der Recherche gucken.
In deinem Code - vorausgesetzt, dass das Blatt überhaupt sichtbar ist - würde sich übrigens ein...
Application.ScreenUpdating = False
' Dein Code
Application.ScreenUpdating = True
... nicht schlecht machen.
Gruss
Chris