ComboBoxen

Bild

Betrifft: ComboBoxen
von: Golem
Geschrieben am: 09.09.2015 12:07:07

Hallo Excel-Fachleute.
Wer kann mir evtl. zwei Fragen beantworten!
Frage 1:
Ich habe auf einem Tabellenblatt mehrere ComboBoxen, die ich mit einer Schleife
positionieren und auch die Größe einstellen möchte.
With ActiveSheet.Shapes("ComboBox" & i)
.Left = Cells(83, 16).Left
.Top = Cells(83, 16).Top
.Height = Cells(83, 16).Height
.Width = Range(Cells(83, 16), Cells(83, 26)).Width
'.Font.Name = "Arial"
'.Font.Bold = True
'.Font.Size = 11

End With
So funktioniert der Code einwandfrei.
Wenn ich die auskommentierten Zeilen hinzufüge,
wird angegeben, dass das Objekt die Eigenschaft oder Methode
nicht unterstützt.
Wie kann ich die Zeilen verwenden?
Frage 2:
Wie kann in einer Zelle angezeigt werden, welche ComboBox
betätigt worden ist?
Für evtl. Tipps oder Anregungen schon mal besten Dank!
Werner

Bild

Betrifft: AW: ComboBoxen
von: Gerd L
Geschrieben am: 09.09.2015 12:39:19
Hallo Werner,
aus welcher Leiste bzw. wie wurden die Comboboxen in die Tabelle eingefügt?
Stammen sie aus der Formular-Leiste könnte man jeweils Makros zuweisen, mit einer Codezeile wie
Cells(1, 1)= Application.Caller
Gruß Gerd

Bild

Betrifft: AW: ComboBoxen
von: Golem
Geschrieben am: 09.09.2015 14:47:18
Hallo Gerd,
einen schönen Dank für Deine Antwort.
Die ComboBoxen sind ActicX Steuerelemente.
Ich habe aus Interesse mal Deinen Vorschlag verwendet ( "Cells(1, 1)= Application.Caller" ).
In der entsprechenden Zelle wird "#Bezug" angezeigt.
Vielleicht hast Du noch einen anderen Vorschlag?
Schöne Grüße
Werner

Bild

Betrifft: AW: ComboBoxen
von: Werner
Geschrieben am: 09.09.2015 13:04:35
Hallo Namensvetter,
Problem 1 würde ich mal so versuchen.

With ActiveSheet.Shapes("ComboBox" & i)
.Left = Cells(83, 16).Left
.Top = Cells(83, 16).Top
.Height = Cells(83, 16).Height
.Width = Range(Cells(83, 16), Cells(83, 26)).Width
End With
With ActiveSheet.Shapes("ComboBox" & i).Font
.Name = "Arial"
.Bold = True
.Size = 11
End With
Habe es aber nicht getestet.
Für Problem 2 hast du ja einen Lösungsansatz von Gerd.
Gruß Werner

Bild

Betrifft: AW: ComboBoxen
von: Golem
Geschrieben am: 09.09.2015 14:58:29
Hallo Werner und Namensvetter,
ich habe Deinen Vorschlag ausprobiert.
Diese Möglichkeit funktioniert nicht.
Gleiche Fehlermitteilung wie vorher.
With ActiveSheet.Shapes("ComboBox" & i).Font
.Name = "Arial"
.Bold = True
.Size = 11
End With
Ich habe im Internet nach langem Suchen nichts gefunden, was evtl. funktionieren könnte.
Evlt. hast Du noch einen weiteren Vorschlag.
Schöne Grüße
Werner

Bild

Betrifft: AW: ComboBoxen
von: Golem
Geschrieben am: 09.09.2015 15:09:23
Hallo Werner,
ich habe den Code geändert:
With ActiveSheet.ComboBox2
.Left = Cells(83, 16).Left
.Top = Cells(83, 16).Top
.Width = Range(Cells(83, 16), Cells(83, 26)).Width
.Height = Cells(83, 16).Height
'.Height = Rows(83).Height
.Font.Name = "Arial"
.Font.Bold = True
.Font.Size = 11
End With
So funktioniert der Code einwandfrei.
Das Problem verursacht diese Zeile:
With ActiveSheet.Shapes("ComboBox" & i)
Ich finde aber keine Lösung.
Hast Du noch einen Vorschlag?
Schöne Grüße
Werner

Bild

Betrifft: AW: ComboBoxen
von: Gerd L
Geschrieben am: 09.09.2015 15:54:36
Hallo Werner (Fragesteller),
falls das ActiveX-Steuerelemente in der Tabelle wären:

Sub Plan_B()
Const i As Integer = 1
With ActiveSheet.OLEObjects("Combobox" & CStr(i))
.Left = Cells(83, 16).Left
.Top = Cells(83, 16).Top
.Width = Range(Cells(83, 16), Cells(83, 26)).Width
.Height = Cells(83, 16).Height
.Object.Font.Name = "Arial"
.Object.Font.Bold = True
.Object.Font.Size = 11
End With
End Sub
Gruß Gerd

Bild

Betrifft: AW: ComboBoxen
von: Golem
Geschrieben am: 09.09.2015 19:19:43
Hallo Gerd,
ja, es sind ActiveX Steuerelemente und Dein Plan B funktioniert einwandfrei.
Ohne Deine Hilfe hätte ich diese Lösung nicht hinbekommen.
Einen schönen Dank und einen schönen Abend.
Werner

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zelle bei neuem Zelleninhalt einfügen"