Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1544to1548
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
Inhaltsverzeichnis

Name der aktuellen ComboBox ermitteln

Name der aktuellen ComboBox ermitteln
28.02.2017 10:28:40
Kenneth
Moin liebe Profis!
Ich bin neu im Forum, habe hier aber schon sehr viel gelesen und sehr viel Hilfe erhalten!
Ich bin nicht ganz jungfräulich, was Excel und VBA angeht, aber wohl noch weit von einem Profi entfernt :-D
Also zu meinem Problem:
Ich habe ein Excel-Sheet in welchem in mehreren (zufällig ausgewählten) Zeilen untereinander ComboBoxen sind. Diese füge ich Über einen CommandButton und eine Routine ein. Sie besitzen alle die gleiche Art von Bezeichnung, nämlich ("ComboBox_" & Zeile) wobei Zeile die Zeile ist, in der die CB drin steht.
In einer zweiten Routine möchte ich nun bei der Auswahl eines anderen Wertes in den CBs einen Wert in einer von den CBs abhängigen Zelle ändern. Jede CB hat eine abhängige Zelle in der gleichen Zeile.
Dafür möchte ich bei Klicken auf die CB eine Routine starten, die den Namen der aktuellen ComboBox herausfindet, die soeben geändert wurde. Und da hört mein Wissen leider auf, und Google kann mir da wohl auch nicht helfen...
Also: Wie ordne ich einer Variablen den Namen der veränderten CB zu?
Vielen Dank schon einmal im Vorraus für eure Zeit und Mühe!
Gruß,
Kenneth

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Name der aktuellen ComboBox ermitteln
28.02.2017 10:36:59
Rainer
Hallo Kenneth,
bin auch ein blutiger Stümper was VBA betrifft, aber sowas habe ich in dieser Form schon gemacht:
Doppelklick auf die Combobox und dann folgender Code:

Private Sub ComboBox1_Change()
ChangedComboBox = 1
' Hier Link zum anderen Sub Programm
' Variable "ChangedComboBox" global definieren nicht vergessen
End Sub
Gruß,
Rainer
AW: Name der aktuellen ComboBox ermitteln
28.02.2017 12:30:22
Kenneth
Danke Rainer, aber ich glaube das hilft mir noch nicht.
Die ComboBox wird automatisch über einen CommandButton erstellt und bekommt automatisch den Namen ("ComboBox_" & Zeile) zugewiesen, gleichzeitig wird beim Erstellen der ComboBox die Eigenschaft .OnAction = "DropdownChange" zugewiesen.
Diese EINE Prozedur "DropdownChange" soll für ALLE ComboBoxen gelten, d.h. egal welche CB ich ändere, es wird IMMER die EINE Prozedur aufgerufen.
Jetzt möchte ich in der Prozedur DropdownChange () den Namen der ComboBox ermitteln, deren Änderung zum Aufruf der Prozedur geführt hat, um die betreffende Zeile zu ermitteln.
Gruß,
Kenneth
Anzeige
AW: Name der aktuellen ComboBox ermitteln
28.02.2017 13:23:52
Kenneth
So jetzt habe ich die Lösung selbst gefunden:
Application.Caller gibt den Namen der gerade geänderten ComboBox aus!, also z.B.:

Sub CurrentCombo()
MsgBox Application.Caller
End Sub

AW: Name der aktuellen ComboBox ermitteln
28.02.2017 13:23:52
Kenneth
So jetzt habe ich die Lösung selbst gefunden:
Application.Caller gibt den Namen der gerade geänderten ComboBox aus!, also z.B.:

Sub CurrentCombo()
MsgBox Application.Caller
End Sub

AW: Name der aktuellen ComboBox ermitteln
01.03.2017 04:41:06
Rainer
Hallo Kenneth,
ich habe es versucht mit:

Private Sub ComboBox1_Change()
MsgBox Application.Caller
End Sub
aber ich bekomme nur "Fehler 2023" zurück?
Gruß,
Rainer
Anzeige
AW: Name der aktuellen ComboBox ermitteln
01.03.2017 12:48:28
Kenneth
Moin Rainer,
Also wenn ich deine Sub einfüge und der ComboBox_B17 zuweise, bekomme ich folgende meldung:
Userbild
Allerdings habe ich das "Private (Sub)" gestrichen, damit ich sie der ComboBox zuweisen konnte.
Gruß,
Kenneth
AW: Name der aktuellen ComboBox ermitteln
01.03.2017 14:19:36
Mullit
Hallo,
zwei Paar Schuhe: Rainer hat ne ActiveX-ComboBox am Start , da geht's nicht mit der Application.Caller-Eigenschaft, Kenneth eine Formular-Box...
Übrigens könntest Du den Private-Modifier auch stehen lassen und die Prozedur manuell zuweisen, geht dann auch..
Gruß, Mullit
Anzeige
AW: Name der aktuellen ComboBox ermitteln
02.03.2017 02:56:17
Rainer
Hallo Mullit,
kennst du einen Weg, der auch für die ActiveX-ComboBox funktionieren würde?
Danke und Gruß,
Rainer
AW: Name der aktuellen ComboBox ermitteln
02.03.2017 11:26:27
Mullit
Hallo,
hmm ja mit ActiveX-Objekten im TabBlatt ist das schwieriger, da gibt's keine ActiveControl-Eigenschaft analog zur UserForm.
Wenn es Dir reicht einmalig die Prozedur auszulagern, übergibst Du das Objekt:
Option Explicit
Private Sub ComboBox1_Change()
Call prcComboBox(probjComboBox:=ComboBox1)
End Sub
Private Sub ComboBox2_Change()
Call prcComboBox(probjComboBox:=ComboBox2)
End Sub
Private Sub ComboBox3_Change()
Call prcComboBox(probjComboBox:=ComboBox3)
End Sub
Private Sub ComboBox4_Change()
Call prcComboBox(probjComboBox:=ComboBox4)
End Sub

Dann der Aufruf im Standardmodul:
Option Explicit
Public Sub prcComboBox(ByRef probjComboBox As MSForms.ComboBox)
Call MsgBox(probjComboBox.Name)
End Sub

Andernfalls bliebe Dir nur die Klassenprogrammierung mit einer Automatisierungsklasse, in der Du das Change-Event abgreifst.
Gruß, Mullit
Anzeige
AW: Name der aktuellen ComboBox ermitteln
03.03.2017 05:48:41
Rainer
Hallo Mullit,
danke für deine Erklärungen.
Rainer

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige