![]() |
Betrifft: Breite einer Combobox beim öffnen definieren
von: Joachim
Hi
ich habe auf einem Tabellenblatt eine Combobox. da werden Daten aus einem anderen Blatt eingelesen.
Soweit so gut.
Wenn ich nun die Combobox anklicke (mit dem Dreieck) und die Combobox öffnet sich, dann kann ich nur einen Teil meiner Einträge sehen, (in der Breite gesehen) weil meine Daten, die ich einlese, breiter sind , ( mehr Zeichen haben) als die Combobox hergibt.
Natürlich könnte ich meine ganze Combobox einfach in die Breite ziehen und grösser machen, sie sollte aber genau in meine Spalte, da wo die drin ist, reinpassen.
Gibt es eine Möglichkeit, das Fenster , wenn die Combobox aufklappt, so breit zu machen, wie der breiteste Eintrag der eingelesen wurde, bezw. in der Combobox steht.
Ich hoffe, ich konnte das einigermassen erklären.
Danke mal für Eure Hilfe
Joachim
![]() |
Betrifft: Nicht moeglich!
von: Johannes D.
Geschrieben am: 13.06.2008 16:10:52
Hallo Joachim,
es ist leider nicht moeglich, da Controls in Office kein .hwnd (eine eindeutige ID) besitzen und man sie ueber die WinApi nicht ansprechen kann. Wenn sich die Combobox auf einer Userform befinden wuerde, koennte man ueber Tricks vielleicht zum gewuenschtem Ergebnis kommen, aber waere auch von hinten durchs Knie gebohrt. Bei, in Sheets eingebetteten, Controls (OLEObjects("...")) existiert leider ueberhaupt keine dahingehende Moeglichkeit.
Ich lass die Frage aber mal offen - falls noch ein VBA Hexenmeister vorbeikommt ... :-)
Gruesse,
Johannes
![]() |
Betrifft: AW: Nicht moeglich!
von: Reinhard
Option Explicit
Private Sub ComboBox1_Change()
ComboBox1.Width = 50
End Sub
Private Sub ComboBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As _
Single, ByVal Y As Single)
Merker = ComboBox1.Width
ComboBox1.Width = 200
End Sub
Gruß
Reinhard
![]() |
Betrifft: AW: Breite einer Combobox beim öffnen definieren
von: Tino
Geschrieben am: 13.06.2008 16:34:12
Hallo,
man könnte ja eine unsichtbare TextBox nehmen, bei dieser den Auto Size auf True stellen, an diese
den größten Text übergeben (Anzahl Zeichen sollte in der Regel ausreichen) und von dieser den Width Wert übernehmen.
Beim Verlassen der Combo den alten Wert, der zuvor in einer Variablen gespeichert wurde, die alte Größe wieder herstellen.
Naja nicht die feine englische Art, könnte aber Funktionieren habe es aber nicht getestet.
Gruß Tino
www.tinomargit.com
![]() |
Betrifft: AW: Breite einer Combobox beim öffnen definieren
von: Tino
![]() |
Betrifft: AW: Breite einer Combobox beim öffnen definieren
von: Uduuh
Geschrieben am: 13.06.2008 18:03:08
Hallo,
die CB hat auch eine Eigenschaft Listwidth. Passe diese an deine Text an.
Gruß aus’m Pott
Udo
![]() |
Betrifft: Danke für Eure Hilfe, das ist genau das Gesuchte
von: Joachim
![]() |