Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Breite einer Combobox beim öffnen definieren

Betrifft: Breite einer Combobox beim öffnen definieren von: Joachim
Geschrieben am: 13.06.2008 15:30:00

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
Geschrieben am: 13.06.2008 16:28:46

Hi Joachim,

meinst du das vom Ansatz her so: https://www.herber.de/bbs/user/53046.xls

Datei hat diesen Code in Modul von Tabelle1 (Eine Combobox auf tabelle1):

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
Geschrieben am: 13.06.2008 18:08:37

Hallo,
hier mal ein kleines Beispiel, erstellt unter Office2007.


https://www.herber.de/bbs/user/53050.xls

Gruß Tino
www.tinomargit.com


  

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
Geschrieben am: 13.06.2008 19:56:46

:-)


 

Beiträge aus den Excel-Beispielen zum Thema "Breite einer Combobox beim öffnen definieren"