Anzeige
Archiv - Navigation
720to724
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
720to724
720to724
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kombibox mittels Array füllen

Kombibox mittels Array füllen
24.01.2006 09:04:49
Guido
Guten Morgen zusammen,
ich versuche mit meinen geringen VBA-Kenntnissne eine mehrspaltige Kombinationsbox zu füllen, die ihre Daten aus der Tabelle 1, Spalte A,B,C und G entnehmen und anzeigen soll.
In der Recherche finde ich viele gut gemeinte Ratschläge zu Laufzeit ein Array zu erstellen und dieses in die Kombobox einzulesen.
Leider weiß ich gar nicht wie ich das anstellen soll. Ein Beispiel wäre schon hilfreich, dann kann ich es evtl. an meine Bedürfnisse anpassen.
Vielen Dank.
Gruß aus Würzburg
Guido

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Tut mir leid, ist mir noch zu hoch ...
24.01.2006 09:32:04
Guido
Danke Micha,
aber wo gebe ich da jetzt meine Spalten A,B,C und G ein die letztendlich in der Combobox angezeigt werden sollen?
Gibt es noch ein einfachere Variante?
Gruß
Guido
Bitte um weitere Hilfe
24.01.2006 11:01:06
Guido
Hallo Spezialisten
bitte um weitere Hilfe. Danke.
Gruß
Guido
AW: Bitte um weitere Hilfe
24.01.2006 12:52:07
Guido
Hallo Kay,
funktioniert leider nicht, in der Kombibox wird nur einspaltig die "1" angezeigt, sonst nichts. Das ganze soll übrigens in einer Userform ablaufen.
Gruß
Guido
Anzeige
AW: Bitte um weitere Hilfe
24.01.2006 13:08:12
Kay
Hallo,
angezeigt wird immer nur der erste Wert der ersten Spalte, wenn mann die KombiBox aufklappt werden die anderen angezeigt, so ist es bei mir.
Hier der Code für die UserForm:

Private Sub UserForm_Initialize()
Dim z As Integer
Dim sp As Integer
Dim arr() As Integer
z = Worksheets("Tabelle1").Range("A65536").End(xlUp).Row
ReDim arr(z, 3)
For z = 1 To z
For sp = 1 To 3
arr(z - 1, sp - 1) = Cells(z, sp)   'Array füllen 3 Spalten
arr(z - 1, 3) = Cells(z, 7)         'Array vierte Spalte
Next sp
Next z
With Me.ComboBox1
.Clear                                  'Inhalte löschen
.ColumnCount = 4                        'Spaltenanzahl
.ColumnWidths = "20Pt;25Pt;30Pt;35Pt"   'Spaltenbreite festlegen
.List = arr                             'Array übergeben
.ListIndex = 0                          'Anzeige festlegen
End With
End Sub

Gruß
Kay
Anzeige
AW: Bitte um weitere Hilfe
24.01.2006 13:33:32
Guido
Hallo Kay,
das scheint heute irgendwie nicht mein Tag zu sein.
Jetzt erhalte ich nur Fehlermeldung bei "arr(z - 1, sp - 1) = Cells(z, sp)" (Typen unverträglich).
Vielleicht sollte ich einmal kurz erkären, was ich eigentlich möchte:
In einer Kombobox sollen mir alle Namen ab Zeile 6 aus Spalte B angezeigt werden. Dies erreiche ich mit:

Private Sub UserForm_Activate()
With Sheets("Tabelle1")
For i = 6 To .Cells(Rows.Count, 1).End(xlUp).Row
cmdName.AddItem .Cells(i, 2)
Next i
End With
End Sub

Nach Auswahl eines Namens möchte ich nun in der Kombobox auch die Anrede dazu aus Spalte 1, den Vornamen aus Spalte C und das Geburtsdatum aus Spalte G angezeigt bekommen.
Ist das in dieser Form überhaupt möglich. Andernfalls habe ich mir überlegt, die Anrede, den Vornamen und das Geburtsdatum in seperaten Textboxen anzuzeigen. Wie könnte man dies verwirklichen.
Ich danke dir für deine Geduld.
Gruß
Guido
Anzeige
AW: Bitte um weitere Hilfe
24.01.2006 14:00:08
Kay
Hi,
wie wäre es mit einer Listbox, dort siehst du gleich alle Daten nicht so wie in einer ComboBox, und warum erst nach Klick die anderen Daten, können die nicht gleich mit angezeigt werden?
Kay
AW: Bitte um weitere Hilfe
Guido
Hallo Kay,
auch eine Listbox wäre mir recht, ich dachte nur für eine Kombobox spricht die Pfeilschaltfläche zur platzsparenden Auswahl.
Wie fülle ich dann die Listbox/Kombobox mit allen Werten ab Zeile 6 aus den Spalten A,B,C und G? Ich kenne es nur einspaltig.
Guido
AW: Bitte um weitere Hilfe
24.01.2006 14:46:20
Kay
Hallo,
also die ListBox ist fast gleich, nur das am rechten Rand zwei Pfeile sich befinden, einmal Up und Down.
Hier mal mein Versuch dies auf deine Tabelle zu zu schneiden.
Eventuell musst du noch die Spalten angleichen und die Listbox die Größe anpassen.

Private Sub UserForm_Initialize()
Dim z As Integer
Dim sp As Integer
Dim arr() As String
z = Worksheets("Tabelle1").Range("A65536").End(xlUp).Row
ReDim arr(z - 6, 3)
For z = 6 To z                              'ab Zeile 6 bis letzte gefüllte Zeile
For sp = 1 To 3                         'Spalten 1-3
arr(z - 6, sp - 1) = Cells(z, sp)   'Array füllen 3 Spalten
arr(z - 6, 3) = Cells(z, 7)         'Array vierte Spalte
Next sp
Next z
With Me.ListBox1
.ColumnCount = 4                        'Spaltenanzahl
.ColumnWidths = "50Pt;50Pt;50Pt;50Pt"   'Spaltenbreite festlegen
.List = arr                             'Array übergeben
.ListIndex = 0                          'Anzeige festlegen
End With
End Sub

Gruß
Kay
Anzeige
AW: Bitte um weitere Hilfe
24.01.2006 15:01:42
Guido
Super Kay,
jetzt funzt´s.
Woher weiß ich jetzt eigentlich, nach Auswahl eines Eintrages, aus welcher Zeile in der Tabelle dieser Eintrag stammt, damit ich gezielt noch andere Werte aus anderen Spalten anzeigen kann. Sprich, Excel muss ja irgendeine Rückmeldung über die Zeile liefern, die man dann weiterverwenden kann. Damit wäre ich für heute "glücklich voll viel" (nach Willy Astor).
Guido
AW: Bitte um weitere Hilfe
24.01.2006 15:47:33
Kay
Hallo,
wenn du wissen willst in welcher Zeile die jeweiligen Daten stehen könnte mann noch eine fünfte Spalte einbauen die am Anfang steht mit der Zeilennummer.
Kay
AW: Bitte um weitere Hilfe
24.01.2006 15:53:52
Guido
Hallo Kay,
ehrlich gesagt habe ich das schon probiert mit der fünften Spalte - krieg es aber auch nicht hin! )-:
Guido
Anzeige
AW: Bitte um weitere Hilfe
24.01.2006 16:18:34
Kay
Hi,

Private Sub UserForm_Initialize()
Dim z As Integer
Dim sp As Integer
Dim arr() As String
z = Worksheets("Tabelle1").Range("A65536").End(xlUp).Row
ReDim arr(z - 6, 4)
For z = 6 To z                         'ab Zeile 6 bis letzte gefüllte Zeile
arr(z - 6, 0) = z                  'Zeilen Zahl
For sp = 1 To 3                    'Spalten 1-3
arr(z - 6, sp) = Cells(z, sp)  'Array füllen 3 Spalten
arr(z - 6, 4) = Cells(z, 7)    'Array vierte Spalte
Next sp
Next z
With Me.ListBox1
.ColumnCount = 5                           'Spaltenanzahl
.ColumnWidths = "25Pt;30Pt;30Pt;30Pt;30"   'Spaltenbreite festlegen
.List = arr                                'Array übergeben
.ListIndex = 0                             'Anzeige festlegen
End With
End Sub

Kay
Anzeige
Danke für deine Unterstützung (o.T.)
Guido
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige