Anzeige
Archiv - Navigation
1228to1232
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
Werte UserForm in Array übernehmen
Gregor
Hallo zusammen
Aus dem Fundus im Forum habe ich folgenden Code zusammengestellt, der prima funktioniert:

Sub Suchen_und_Fundstellen_auflisten_mehrere_Tabellen()
Dim Meldung As Variant, strWort() As Variant
Dim Bereich As Range, Rng As Range
Dim WS As Worksheet
Dim y As Double, IntI As Double, n As Double
Dim arrFind()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
strWort() = Array("Morgen", "Heute", "Gestern", "Test")
' Eigentlicher Suchvorgang (in allen Tabellenblättern)
n = 0
For y = 1 To Sheets.Count
If Sheets(y).Name  "Auswahltabelle" Then
' Bereich festlegen
Set Bereich = Worksheets(y).UsedRange
For Each Rng In Bereich
For IntI = 0 To 3 'Anzahl Array = 4 (0,1,2,3)
If InStr(Rng, strWort(IntI)) Then
n = n + 1
ReDim Preserve arrFind(1 To 2, 1 To n)
arrFind(1, n) = Sheets(y).Name
arrFind(2, n) = Rng.Address(RowAbsolute:=False, ColumnAbsolute:=False)
End If
Next
Next
End If
Next
Select Case n
Case 1
Meldung = MsgBox("Es wurde leider nichts gefunden", _
vbOKOnly, "   Gefundene Werte")
Exit Sub
Case Else
Meldung = MsgBox(n & " Übereinstimmungen gefunden.", _
vbOKOnly, "   Gefundene Werte")
' Tabelle einfügen
For Each WS In Worksheets
If WS.Name = "Auswahltabelle" Then
WS.Delete
End If
Next
Worksheets.Add.Move after:=Worksheets(Worksheets.Count)
On Error Resume Next
With ActiveSheet
.Name = "Auswahltabelle"
.[A1] = "Suchergebnis"
.Range(.Cells(2, 1), .Cells(1 + n, 2)).Select
.Range(.Cells(2, 1), .Cells(1 + n, 2)) = Application.Transpose(arrFind)
.Cells.EntireColumn.AutoFit
.Cells(1, 1).Select
End With
End Select
Sheets(y).Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Nun sollte ich aber die Suchbegriffe Variabel gestallten, indem ich in einer UserForm max 10 Suchbegriffe zur Auswahl vorgebe. Der User soll die gewünschten Suchbegriffe (mehrere) anklicken können und anschliessend sollten die angewählten Begriffe in den Array zum Suchen übernommen werden. Wie muss ich meinen Code ergänzen?
Danke und Gruss
Gregor

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Werte UserForm in Array übernehmen
14.09.2011 21:55:27
Peter
Hallo Gregor,
ein UserForm(ular) mit einer ListBox und einem CommandButton.
Die ListBox auf MultiSelect = 1 oder 2 gesetzt
dann kannst Du auswählen und einen temporären Array mit den ausgewählten Daten füllen

Private Sub CommandButton1_Click()
Dim lListBox  As Long
Dim lZeile    As Long
Dim vTemp()   As Variant
Dim iTemp     As Integer: iTemp = -1
With ThisWorkbook.Worksheets("Tabelle2")
.Range("C1:C" & .Cells(Rows.Count, 3).End(xlUp).Row).ClearContents
For lListBox = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(lListBox) Then
iTemp = iTemp + 1
ReDim Preserve vTemp(iTemp)
vTemp(iTemp) = ListBox1.List(lListBox, 0)
End If
Next lListBox
End With
If iTemp > -1 Then
MsgBox Join(vTemp) ' anzeigen der ausgewählten Suchbegriffe
Else
MsgBox "Sie haben keinen Suchbegriff ausgewählt.", _
48, "   Hinweis für " & Application.UserName
End If
End Sub


Private Sub UserForm_Activate()
Dim vTemp  As Variant
vTemp = ThisWorkbook.Worksheets("Tabelle2").Range("A1:A12")
With ListBox1
.List = vTemp
End With
End Sub

Gruß Peter
Anzeige
AW: Werte UserForm in Array übernehmen
14.09.2011 22:13:01
Peter
Hallo Gregor,
hier noch die Beispiel.Mappe dazu

Die Datei https://www.herber.de/bbs/user/76620.xls wurde aus Datenschutzgründen gelöscht


Gruß Peter
AW: Werte UserForm in Array übernehmen
14.09.2011 23:21:53
Gregor
Hoi Peter
Vielen Dank, das scheint schon vielversprechend.
Aber wie bringe ich die ausgewählten Begriffe (Join(vTemp)?) in den untenstehenden Array
strWort() = Array("Morgen", "Heute", "Gestern", "Test")
das heisst anstelle der statischen Angaben?
Leider krieg ich das nicht heraus, ist aber vermutlich keine Hexerei mehr.
Danke und Gruss
Gregor
Anzeige
AW: Werte UserForm in Array übernehmen
15.09.2011 11:59:33
Peter
Hallo Gregor,
in der beigefügten Mappe fülle ich den Array strWort und rufe nach dem Schließen des UserForm(ulars) Dein Makro auf.
Es findet natürlich die angeklickten Werte im Blatt Tabelle1.
Ich hoffe, das war's, was Du wolltest.
Gruß Peter
https://www.herber.de/bbs/user/76630.xls
AW: Werte UserForm in Array übernehmen
15.09.2011 15:45:19
Gregor
Hallo Peter
Super, vielen Dank für deine Unterstützung.
Gruss Gregor

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige