Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Kombifelder mit var. Namen einen Wert zuweisen

Kombifelder mit var. Namen einen Wert zuweisen
17.06.2018 20:03:16
mb95
Hallo,
ich habe mehrere Kombinationsfelder (Benennung: "cbo" & i).
Die Felder sind mit Auswahlmöglichkeiten befüllt, möchte beim öffnen der Userform den Feldern schon einen Wert zuweisen.
Mein Ansatz:
dim i as integer
dim strWert as string
For i = 0 to 9
me.controls("cbo" & Cstr(i + 1)) = strWert
Next i
Klappt auch soweit, nur scheint das Kombifeld den Wert zwar drin stehen hat, allerdings wird es nicht als Wert erkannt. Ich hoffe mein Problem ist klar geworden.
Leider gibt es nicht den Befehl: Me.Controls("cbo" & Cstr(i + 1)).Value
Danke für die Hilfe
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kombifelder mit var. Namen einen Wert zuweisen
17.06.2018 22:00:11
Martin
Hallo mb95,
warum machst du es nicht wie bei einer normalen ComboBox:

dim i as integer
dim strWert as string
For i = 0 to 9
me.controls("cbo" & Cstr(i + 1)).AddItem strWert
Next i
Viele Grüße
Martin
AW: Kombifelder mit var. Namen einen Wert zuweisen
17.06.2018 22:08:21
Daniel
Hi
den Befehl gibst schon, er wird dir nur nicht in der Intellisense angezeigt.
wenn du eine Steuerelement indirekt über Controls(...) ansprichst, musst du selber wissen, welche Eigenschaften du ansprechen kannst. Die Intellisense kann dich da nicht unterstützen, weil sie nicht erkennen kann, welches Objekt verwendet wird.
Wo genau hast du den diesen Befehl platziert?
Im Initialize-Event?
wenn Comboboxen schon bei Start der Userform mit einem Wert vorbefüllt sein sollen, dann brauchst du hierfür keine Programmierung.
Du kannst alternativ auch den Startwert in die Eigenschaft Value in der Eigenschaftsliste im VBA-Editor schreiben.
Gruß Daniel
Anzeige
AW: Kombifelder mit var. Namen einen Wert zuweisen
18.06.2018 06:47:25
Matthias
Hallo
Für mich gibt es mehrere Dinge die ich nicht verstehe.
Wieso: For i = 0 to 9
statt: For i = 1 to 10 ?
wenn Du dann doch in der nächsten Zeile schreibst:
me.controls("cbo" & Cstr(i + 1)) = strWert
Somit kannst Du Dir ja das +1 sparen.
Desweiteren musst Du nicht Umwandeln, denn der Name des Controls ist sowieso ein String.
Es würde also auch so funktionieren:
Option Explicit
Private Sub UserForm_Initialize()
Dim i As Integer
Dim strWert As String
strWert = "Hallo"
For i = 1 To 10
Me.Controls("cbo" & i) = strWert & " " & i
Next i
End Sub
auch ohne .Value
Userbild
Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige