| |
| Leitfaden für die Materialauswahl im Spritzguss, ein Fachartikel
|
Autor
|
Thema: mehrspaltige ComboBox füllen (3167 / mal gelesen)
|
GüSo Mitglied Elektrotechniker
Beiträge: 141 Registriert: 22.01.2009 Windows 10, Office2019
|
erstellt am: 03. Feb. 2020 15:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Allerseits! Ich habe das Problem auf einem Tabellenblatt ein ActiveX-Steuerelement, genauer eine Combobox zu platzieren und zu befüllen. Bei einer einspaltigen Box klappt das. Zum Beispiel ComBoLeitwerte.AddItem (…) Ich will aber eine 2. Spalte befüllen. Da stehe ich auf dem Schlauch. Die MS-Hilfe brachte mich da auch nicht weiter. Übrigens ich nutze Excel 2019. Kann mir da bitte einer auf die Sprünge helfen? MfG Günter ------------------ MfG Günter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 817 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 03. Feb. 2020 16:58 <-- editieren / zitieren --> Unities abgeben: Nur für GüSo
Hallo Günter Dazu benötigst du einen zweidimensionalen Array. Zum befüllen Code: ComboBox1.ColumnCount = 2Dim Filme(4, 1) As String Filme(0, 0) = "Herr der Ringe" Filme(1, 0) = "Speed" Filme(2, 0) = "Krieg der Sterne" Filme(3, 0) = "Der Pate" Filme(4, 0) = "Pulp Fiction" Filme(0, 1) = "Abenteuer" Filme(1, 1) = "Action" Filme(2, 1) = "Science-Fiction" Filme(3, 1) = "Thriller" Filme(4, 1) = "Drama" ComboBox1.List = Filme
Zum auslesen Code: MsgBox "Du hast " & ComboBox1.Value & " ausgewählt"On Error Resume Next MsgBox "Du magst wohl " & ComboBox1.Column(1) & "-Filme"
Gruss Andreas ------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GüSo Mitglied Elektrotechniker
Beiträge: 141 Registriert: 22.01.2009 Windows 10, Office2019
|
erstellt am: 04. Feb. 2020 08:52 <-- editieren / zitieren --> Unities abgeben:
|
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 395 Registriert: 11.08.2007
|
erstellt am: 10. Feb. 2020 09:16 <-- editieren / zitieren --> Unities abgeben: Nur für GüSo
Hi Günter, das geht auch mit AddItem - nach diesem Prinzip: Code: Dim intZaehler1 As Integer Dim intZaehler2 As Integer intZaehler2 = 10 For intZaehler1 = 1 To 10 ActiveSheet.ComboBox1.AddItem intZaehler1 ActiveSheet.ComboBox1.List(ActiveSheet.ComboBox1.ListCount - 1, 1) = intZaehler2 intZaehler2 = intZaehler2 - 1 Next intZaehler1
Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GüSo Mitglied Elektrotechniker
Beiträge: 141 Registriert: 22.01.2009 Windows 10, Office2019
|
erstellt am: 12. Feb. 2020 07:31 <-- editieren / zitieren --> Unities abgeben:
Hallo Karin, ich habe Deinen Code in einer Exceltabelle ausprobiert. Bei mir wird aber immer nur eine Spalte ausgefüllt. Die 2. Spalte mit den runtergezählten Integerwerten ist in der Combobox nicht enthalten. Das funktioniert bei mir nur mit der Version von Henry V. Ich verwendete Excel 2019. Gruß Günter ------------------ MfG Günter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 395 Registriert: 11.08.2007
|
erstellt am: 12. Feb. 2020 08:27 <-- editieren / zitieren --> Unities abgeben: Nur für GüSo
|
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 395 Registriert: 11.08.2007 Win 10 Pro, Office 97 bis Office 2016
|
erstellt am: 12. Feb. 2020 08:34 <-- editieren / zitieren --> Unities abgeben: Nur für GüSo
Hi Günter, das liegt einfach daran, dass deine ComboBox offensichtlich nur 1 Spalte hat - ändere unter den Eigenschaften ColumnCount von 1 auf 2, dan siehst du auch mit meinem Code 2 Spalten. Oder du ergänzt am Codeanfang die Zeile: Code: ActiveSheet.ComboBox1.ColumnCount = 2
dann wird dies codemäßig (wie bei Andreas) realisiert. Das kann man so machen, muss man aber nicht, da sich die Spaltenanzahl ja nicht ändert und man sie deshalb eben auch fix von Hand einstellen kann.
Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GüSo Mitglied Elektrotechniker
Beiträge: 141 Registriert: 22.01.2009 Windows 10, Office2019
|
erstellt am: 12. Feb. 2020 10:39 <-- editieren / zitieren --> Unities abgeben:
Hallo Karin, hier mal mein Code mit dem ich das probiert habe. Funktioniert aber nicht. Im Code-Schnipsel sind beide Varianten enthalten. Deshalb die Sprungmarke. Gruß Günter Sub Erprobung_Karin() Dim intZaehler1 As Integer Dim intZaehler2 As Integer intZaehler2 = 10 Dim Feld(10, 1) As String MsgBox ActiveSheet.Name ActiveSheet.combobox1.Clear 'GoTo F1 ActiveSheet.combobox1.ColumnCount = 2 For intZaehler1 = 1 To 10 Feld(intZaehler1 - 1, 0) = CStr(intZaehler1) Feld(intZaehler1 - 1, 1) = CStr(intZaehler2 - intZaehler1) Next intZaehler1 ActiveSheet.combobox1.List = Feld Exit Sub F1: ActiveSheet.combobox1.ColumnCount = 2 For intZaehler1 = 1 To 10 ActiveSheet.combobox1.AddItem intZaehler1 ActiveSheet.combobox1.List(ActiveSheet.combobox1.ListCount - 1, 2) = intZaehler2 intZaehler2 = intZaehler2 - 1 Next intZaehler1 End Sub
------------------ MfG Günter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 395 Registriert: 11.08.2007
|
erstellt am: 12. Feb. 2020 11:07 <-- editieren / zitieren --> Unities abgeben: Nur für GüSo
Hi Günter, dann lade doch mal deine Mappe hoch - ich kann das Problem nämlich in meiner Mappe nicht nachvollziehen. Ich habe meine Mappe mal angehängt (Achtung, in .xlsm umbenennen nach Download!). Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GüSo Mitglied Elektrotechniker
Beiträge: 141 Registriert: 22.01.2009 Windows 10, Office2019
|
erstellt am: 12. Feb. 2020 13:04 <-- editieren / zitieren --> Unities abgeben:
Hallo, anbei meine Mappe mit dem Makro als txt getarnt. Komisch bei mir klappte es jetzt auch. Ich kann aber nicht nachvollziehen, warum es vorher nicht klappte. Da hatte ich aber noch ein anderes VBA-Projekt im Excel offen. Die Verbindung zwischen dem VBA-Modul und dem aktiven Blatt muß ja aber gestimmt haben, denn die Kombobox wurde ja "richtig" gefüllt. Na ja zur Hälfte gefüllt. Gruß Günter ------------------ MfG Günter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 395 Registriert: 11.08.2007
|
erstellt am: 12. Feb. 2020 14:47 <-- editieren / zitieren --> Unities abgeben: Nur für GüSo
Hi Günter, dein Code ist falsch - vergleiche mal deine Zeile: Code: ActiveSheet.ComboBox1.List(ActiveSheet.ComboBox1.ListCount - 1, 2) = intZaehler2
mit der entsprechenden Zeile bei mir: Code: ActiveSheet.ComboBox1.List(ActiveSheet.ComboBox1.ListCount - 1, 1) = intZaehler2
Die Spaltenzählung beginnt nämlich bei 0 und nicht bei 1 - bei deinem Code füllst du also die nicht vorhandene 3. Spalte anstelle der 2. Spalte. Bis später, Karin [Diese Nachricht wurde von Beverly am 12. Feb. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GüSo Mitglied Elektrotechniker
Beiträge: 141 Registriert: 22.01.2009 Windows 10, Office2019
|
erstellt am: 13. Feb. 2020 09:41 <-- editieren / zitieren --> Unities abgeben:
Hallo Karin, kleine Ursache große Wirkung und vorallem Konzentration und Aufmerksamkeit lassen sich nicht erzwingen. Danke für Deine Hilfe und Korrekturlesen. Gruß Günter ------------------ MfG Günter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |