Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1480to1484
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
ComboBox1 Liste per VBA befuellen
08.03.2016 09:46:15
Uwe
Hallo,
ich habe in dem Tabellenblatt "Deutschland" die "ComboBox1".
Diese moechte ich mit Daten aus einem anderen Tabellenblatt der gleichen Datei befuellen.
Die "Befuellung" der "ComboBox1" mit Daten soll passieren, wenn in einem Userform der Button "CommandButton1" gedrueckt wird.
Die Daten die in die "ComboBox1" geschrieben werden sollen, stehen in dem Tabellenblatt "Personalstammdaten A-M" in den Datenfeldern "C1:C87".
Wie bekomme ich diese Daten in die "ComboBox1" per VBA ?
Vielen Dank fuer Eure Unterstuetzung,
Uwe

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox1 Liste per VBA befuellen
08.03.2016 09:56:14
ChrisL
hi Uwe
Private Sub CommandButton1_Click()
Dim i As Byte
ComboBox1.Clear
For i = 1 To 87
ComboBox1.AddItem Worksheets("Personalstammdaten A-M").Cells(i, 3)
Next i
End Sub

cu
Chris

AW: ComboBox1 Liste per VBA befuellen
08.03.2016 10:11:28
Uwe
Schon mal vielen Dank Chris,
es kommt jedoch die Fehlermeldung "Object required".
Liegt es vielleicht daran, das in dem Makro noch erwaehnt werden muss, das sich die "ComboBox1" in dem Tabllenblatt "Deutschland" befindet ?
Danke fuer deine Hilfe,
Gruss,
Uwe

AW: ComboBox1 Liste per VBA befuellen
08.03.2016 10:16:39
ChrisL
Hi Uwe
Ja genau, habe nur Userform gelesen ;)
Private Sub CommandButton1_Click()
Dim i As Byte
Worksheets("Deutschland").ComboBox1.Clear
For i = 1 To 87
Worksheets("Deutschland").ComboBox1.AddItem Worksheets("Personalstammdaten A-M").Cells(i, 3)
Next i
End Sub

cu
Chris

Anzeige
AW: ComboBox1 Liste per VBA befuellen
08.03.2016 10:33:07
Uwe
Hey super. Das hat schon einmal riesig geholfen und funktioniert.
Bekommst du auch noch das folgende hin:
Es soll immer der "Erste Wert" von dem Bezug auf die Datenreihe "C1:C87" ( also der Wert der in C1" steht ) in der "ComboBox1" eingetragen werden. ( Da steht bei mir "Mitarbeiter auswaeheln" und die Benutzer wissen dann was sie mit diesem Button zu tun haben )
Zusaetzlich soll auch noch ein Wert des "Namens" ausgegeben werden in Zelle "B6" in dem Tabllenblatt "Deutschland"
Wird also z.B. der 5. Name des Bereiches "C1:C87" ausgewaehlt, dann soll die Zahl "5" in "B6" geschrieben werden. Diese Zahlen stehen passend zu "C1:C87" in "A1:A87" im Blatt "Personalstammdaten A-M".
Diesen Wert z.B. "5" nutze ich dann mit SVERWEIS um weitere Daten in das Tabellenblatt "Deutschland" zu schreiben.
Vielen Dank !

Anzeige
AW: ComboBox1 Liste per VBA befuellen
08.03.2016 10:55:15
ChrisL
Hi Uwe
Private Sub CommandButton1_Click()
Dim i As Byte
With Worksheets("Deutschland").ComboBox1
.Clear
For i = 1 To 87
.AddItem Worksheets("Personalstammdaten A-M").Cells(i, 3)
Next i
.ListIndex = 0
End With
End Sub

Private Sub ComboBox1_Change()
On Error Resume Next
With Worksheets("Deutschland")
.Range("B6") = Worksheets("Personalstammdaten A-M").Cells(.ComboBox1.ListIndex + 1, 1)
End With
End Sub
cu
Chris

AW: ComboBox1 Liste per VBA befuellen
08.03.2016 11:24:46
Uwe

Private Sub ComboBox1_Change()
On Error Resume Next
With Worksheets("Deutschland")
.Range("B6") = Worksheets("Personalstammdaten A-M").Cells(.ComboBox1.ListIndex + 1, 1)
End With
End Sub

Das funktioniert jetzt, das er die Werte 1,2,3 usw. richtig in die das Feld "B6" schriebt. Es gibt nur noch ein Problem.
Ueber einen CommandButton2 rufe ich machmal auch die Daten aus dem Tabellenblatt "Personalstammdaten N-Z" auf.
Dann stehen die richtigen Namen in der Combobox, er "schaut" im SVERWEIS jedoch immer noch in dem Tabellenblatt "Personalstammdaten A-M" nach.
Daher sollte er sich in dem Befehl der oben steht und den ich in die ComboBox1 kopiert habe besser immer auf die Spalte "A" des Tabellenblattes beziehen, aus dem die Namen wirklich kommen.

Anzeige
AW: ComboBox1 Liste per VBA befuellen
08.03.2016 11:30:28
ChrisL
bin im Urlaub

AW: ComboBox1 Liste per VBA befuellen
08.03.2016 11:34:03
Uwe
Na dann erst einmal schoenen Urlaub !
Vielleicht kannst du es dir ja spaeter einmal anschauen

AW: ComboBox1 Liste per VBA befuellen
08.03.2016 12:59:07
ChrisL
Hi Uwe
Danke für deine Urlaubswünsche, aber ich bin gar nicht im Urlaub, sondern war gerade etwas genervt. Aufgrund deiner Salamitaktik wäre es bereits das dritte oder vierte mal, wo ich die gleiche Datei nachbaue. Und wenn man eine VBA Lösung will, müsste man sich schon ein wenig mit dem Code beschäftigen. Für Auftragsprogrammierung gibt es entsprechende Firmen.
Nachdem ich mir nun Luft gemacht habe, zurück zum Thema ;)
Lade mal eine Beispieldatei hoch und beschreibe das (ganze) Problem.
cu
Chris

Anzeige
AW: ComboBox1 Liste per VBA befuellen
08.03.2016 13:53:11
Uwe
Hallo Chris,
sorry, das ergab sich erst aus dem einfuegen der VBA Codes.
Vielen Dank fuer deine Hilfe.
Dies hier ist die Beispieldatei:
https://www.herber.de/bbs/user/104190.xlsm
Es funktioniert ja auch soweit alles. Ueber die beiden CommanButton 1+2 im UserForm1 werden die Daten in die ComboBox der jeweiligen Blaetter eingefuegt.
Aber es haengt halt noch der SVERWEIS dahinter. Dieser bezieht sich auf das Datenfeld "B6" im Tabellenblatt "Deutschland".
Wenn man jetzt zwischen den Daten der Namen "A-M", bw. "N-Z" hin und her wechselt, dann bezieht sich der SVERWEIS aufgrund der VBA Formel der ComboBox1 immer auf die Namen "A-M".
Auch das das #N/A erscheint verstehe ich nicht, wenn man die Namenslisten wechselt.
Uebrigens ist der Grund fuer den Wechsel der Namenslisten, damit nicht in einer Lister der ComboBox1 so viele Namen zur Auswahl stehen und man ewig an seinem Namen suchen muss.
Vielen Dank und liebe Gruesse,
Uwe

Anzeige
AW: ComboBox1 Liste per VBA befuellen
08.03.2016 16:36:08
ChrisL
Hi Uwe
Geht doch :)
https://www.herber.de/bbs/user/104192.xlsm
Private Sub CommandButton1_Click()
Call CBfuellen(Worksheets("Personalstammdaten A-M"))
End Sub
Private Sub CommandButton2_Click()
Call CBfuellen(Worksheets("Personalstammdaten N-Z"))
End Sub

Private Sub CBfuellen(WS As Worksheet)
Dim i As Byte
With Worksheets("Deutschland")
.ComboBox1.Clear
For i = 1 To WS.Range("A65536").End(xlUp).Row
.ComboBox1.AddItem WS.Cells(i, 3)
Next i
.ComboBox1.ListIndex = 0
.Range("A6") = WS.Name
.Select
End With
Unload Me
End Sub

Der Tabellenname steht nun in A6, der SVERWEIS nimmt mit INDIREKT Bezug auf diesen Namen und #NV erscheint, weil Auswahl Null kein SVERWEIS Ergebnis liefert.
=WENN(ISTNV(SVERWEIS($B$6;INDIREKT("'"&A6&"'!$A$1:I108");9));"";SVERWEIS($B$6; INDIREKT("'"&A6&"'!$A$1:I108");9))
cu
Chris

Anzeige
AW: ComboBox1 Liste per VBA befuellen
08.03.2016 16:37:35
ChrisL
Dim i As Long
(anstelle von Byte)
Macht vermutlich keinen Unterschied aber dennoch besser...

AW: ComboBox1 Liste per VBA befuellen
08.03.2016 16:41:32
Uwe
Einfach Weltklasse. Fantastisch !
Ich werde es morgen mal einbauen und ein wenig rumspielen.
Vielen vielen Dank und noch einen schoenen Urlaub :-)

91 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige