Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1528to1532
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
ComboBox mit Variable ansprechen
03.12.2016 21:30:58
Sigi
Hallo,
ich möchte über eine Variable ansprechen.
Danke.
Gruß
Sigi
Option Explicit
Dim sBox As String
Sub Probe()
UserForm1.Controls(sBox).Clear
End Sub
Private Sub ComboBox1_Change()
sBox = "ComboBox1"
Call Probe
End Sub
Private Sub ComboBox2_Change()
sBox = "ComboBox2"
Call Probe
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox mit Variable ansprechen
03.12.2016 21:51:20
Gerd
Hallo Sigi,
das geht. Nur solltest du aus dem Change-Ereignis heraus die Items des selben Steuererlementes nicht mit Clear weghauen.
Option Explicit
Dim sBox As String
Sub Probe()
MsgBox UserForm1.Controls(sBox).Name & vbLf & UserForm1.Controls(sBox)
End Sub
Private Sub ComboBox1_Change()
sBox = "ComboBox1"
Call Probe
End Sub
Private Sub ComboBox2_Change()
sBox = "ComboBox2"
Call Probe
End Sub
Gruß Gerd
AW: ComboBox mit Variable ansprechen
03.12.2016 22:01:30
Sigi
Hallo Gerd,
Danke für Deine Antwort,
ich habe leider einen Fehler geschrieben.
Es sollte ComboBox3 geleert werden, nur das funktioniert nicht.
Es muß lauten
Sub Probe()
UserForm1.Controls(sBox).Clear
End Sub
Private Sub ComboBox1_Change()
sBox = "ComboBox3"
Call Probe
End Sub
Private Sub ComboBox2_Change()
sBox = "ComboBox3"
Call Probe
End Sub

Anzeige
AW: ComboBox mit Variable ansprechen
04.12.2016 07:05:21
Matthias
Hallo
Sollte ComboBox3 mit Daten per RowSource gefüllt werden, kannst Du auch das probieren:
Option Explicit
Public sBox$
Sub Probe()
If sBox  "" Then
With UserForm1.Controls(sBox)
.RowSource = ""
.Text = ""
End With
End If
End Sub
https://www.herber.de/bbs/user/109868.xlsm
Gruß Matthias
AW: ComboBox mit Variable ansprechen
04.12.2016 08:44:29
Sigi
Hallo Matthias
Danke für Deine Antwort, doch leider funktioniert es nicht so wie ich es benötige.
Die ComboBox3 wird nicht über RowSource eingelesen sondern über
Private Sub UserForm_Initialize()
Dim ii As Long
With UserForm1.ComboBox3
For ii = 2 To Cells(Rows.Count, 3).End(xlUp).Row
.AddItem Cells(ii, 3)
Next ii
End With
End Sub

Sub Probe()
If sBox "" Then
With UserForm1.Controls(sBox)
.Clear
Dann kommt ein Makro, dass die ComboBox neu einliest, je nachdem welche Box angesprochen wird
End With
End If
End Sub
Sinn und Zewck ist es, dass ich ca. 40 ComboBoxen in mehreren MultiPages habe, welche immer das
gleiche Makro benötigen.
Hier ein Muster da funtioniert es
Es git eine Haupt Form = UFStart
UFTextNeu = eine eigene Form
Die ComboBox cboKD01 wird mit Anreden eingelesen
Wenn ListIndex = 0 Dann wird UFTextNeu augerufen.
Diese hat eine Textbox UFTextNeu.txtDataNeu
Hier wird eine neue Anrede eingetragen
Ist der Eintrag nicht vorhandenwird dieser in die Tabelle (P) eigenes Workbook.Sheets
Die Einträge in ComboBox "cboKD01" werden gelöscht und neu eingelesen.
Private Sub cboKD01_Change()
With UFStart  'Rem HauptForm
If .cboKD01.Value = "" Then Exit Sub
If .cboKD01.ListIndex = 0 Then
sDataNeu = "T_ANREDE"
strBoxDataNeu = "cboKD01"
sTextNeu1 = "Anredetext hinzufügen!"
sTextNeu2 = "Anredetext löschen?"
Application.Run "Cbo_Texte_Aendern"
End If
End Sub
Sub Cbo_Texte_Aendern()
Dim lSp As Long
Set WkbD = Workbooks(sD)
Set WksP = WkbD.Worksheets(P)
With UFTextNeu
.cmdDataNeu.Locked = True
.cmdDataloeschen.Locked = True
.lblDataNeu.Caption = sTextNeu1
.lblDataLoeschen.Caption = sTextNeu2
.cboDataloeschen.Clear
End With
With WksP
lSp = .Rows(1).Find(what:=sDataNeu, LookIn:=xlValues, lookat:=xlWhole, SearchOrder:=xlByRows).Column
UFTextNeu.cboDataloeschen.List = .Range(.Cells(3, lSp), .Cells(Rows.Count, lSp).End(xlUp)).Value
End With
UFTextNeu.Show
End Sub Rem UFTextNeu wird aufgerufen
Rem Text in UFTextNeu.txtDataNeu.Text
Private Sub cmdDataNeu_Click()
Dim lSp As Long
Set WkbD = Workbooks(sD)
Set WksP = WkbD.Worksheets(P)
With WksP
Rem Spalte suchen
lSp = .Rows(1).Find(what:=sDataNeu, LookIn:=xlValues, lookat:=xlWhole).Column
For ii = 2 To .Cells(Rows.Count, lSp).End(xlUp).Row + 1
If .Cells(ii, lSp) = UFTextNeu.txtDataNeu.Text Then 'Rem prüfen ob Text vorhanden ist
MsgBox "Text bereits vorhanden", vbExclamation, "Eingabe"
UFTextNeu.txtDataNeu.Text = ""
UFTextNeu.txtDataNeu.SetFocus
Exit Sub
End If
Next ii
.Cells(ii, lSp).Value = UFTextNeu.txtDataNeu.Text
'  Application.Run "P_sortieren"
End With
Rem ComboBox in UF löschen, neu einlesen und neuen Text anzeigen
UFStart.Controls(strBoxDataNeu).Clear
With WksP
lSp = .Rows(1).Find(what:=sDataNeu, LookIn:=xlValues, lookat:=xlWhole).Column
For ii = 2 To .Cells(Rows.Count, lSp).End(xlUp).Row
UFStart.Controls(strBoxDataNeu).AddItem .Cells(ii, lSp)
Next ii
End With
UFStart.Controls(strBoxDataNeu).Value = UFTextNeu.txtDataNeu.Text
UFTextNeu.txtDataNeu.Text = ""
sDataNeu = ""
strBoxDataNeu = ""
sTextNeu1 = ""
sTextNeu2 = ""
Unload UFTextNeu
End Sub
Hoffe Du kannst mir helfen.
Gruß
Sigi
Anzeige
AW: ComboBox mit Variable ansprechen
04.12.2016 09:12:15
Matthias
Hallo
Die ComboBox3 wird doch mit Clear korrekt gelöscht wenn Du sie mit AddItem füllst.
Funktioniert doch.
Gruß Matthias
AW: ComboBox mit Variable ansprechen
04.12.2016 09:36:41
Sigi
Hallo Matthias,
bis vorher nicht, habe Excel neu gestart und jetzt funktioniert es.
Danke!
Gruß
Sigi

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige