Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
980to984
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
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA - Anzeige ändern währen Scrollen durch Combobo

VBA - Anzeige ändern währen Scrollen durch Combobo
03.06.2008 09:12:00
Jogy
Ich habe eine ComboBox, in der sich ca. 200 wenig aussagekräftige Werte befinden - ist alles nach dem Schema AB_xxxx, wobei xxxx für eine 4stellige Zahl steht.
Ich hätte nun gerne, dass wenn ich mit der Maus über einen Listeneintrag gehe, eine Erklärung dieses Eintrages angezeigt wird. Dass ich das über MouseOver lösen muss ist klar, nur wie komme ich an den momentan mit der Maus markierte Eintrag? Oder gibt es noch eine Lösung?
Die Anzeige nach der Auswahl bzw. beim Scrollen mit der Tastatur funktioniert bereits, das ging über das Change-Ereignis und .value
Danke schon mal und Gruss,
Jogy

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Anzeige ändern währen Scrollen durch Com
03.06.2008 09:22:09
Armin
Hallo Jogy,
das wird leider nichts. Wenn VBA gut (?) dann würde ich Dir vorschlagen die AB_xxxx garnicht anzeigen (evtl. nur laden) und dafür aussagekräftige Einträge anzeigen.
Gruß Armin

AW: VBA - Anzeige ändern währen Scrollen durch Com
03.06.2008 10:17:33
Jogy
Hallo Armin,
das geht leider aus zwei Gründen nicht:
1. Je nachdem wie der Anwender vorgeht, hat er unter Umständen diesen AB_xxxx Code zur Hand und kann diesen somit recht schnell auswählen (wir wahrscheinlich sogar der Regelfall sein).
2. Es gibt keine aussagekräftigen Werte, die in eine ComboBox passen würden, hinter diesem Code steckt eine mehr oder weniger umfangreiche Materialliste.
Gruss, Jogy

Anzeige
AW: VBA - Anzeige ändern währen Scrollen durch Com
03.06.2008 10:56:52
fcs
Hallo Jogy,
eine umfangreiche Materialliste ist doch perfekt, um weitere Daten in der Auswahlliste darzustellen.
Setze meinen Vorschlag mit der mehrspaltigen Auswahlliste um und du hast fast die gesamte Bildschirmbreite um pro Zeile Zusatzinformationen darzustellen.
Wie Ramses schon erwähnt hat funktioniert dies auch mit den ComboBoxen in der Userform.
Das Ergebnis schaut dann so aus, wenn man in der Combobox einen Wert auswählt.
Userbild
Gruß
Franz

AW: VBA - Anzeige ändern währen Scrollen durch Com
03.06.2008 12:05:21
Jogy
Hi Franz,
hab das mal ausprobiert und das wird furchtbar unübersichtlich, da ist es wohl besser, wenn ich mit den Einschränkungen meiner Version lebe - da habe ich wenigstens einen Zeilenumbruch zur Verfügung. Naja, vielleicht kann ich es noch für eine Kurzbezeichnung übernehmen, das hilft wenigstens etwas.
Noch zwei Fragen:
1. Wie erreichst Du bei Dir eigentlich, dass das ausgeklappte Listenfeld breiter ist als die ComboBox?
2. Wie legst Du die Breite der Spalten fest? Über einen festen Wert in ColumnWidths ist es etwas ungeschickt, da dies sich ändern kann. Gibt es da eine dynamische Anpassung?
Danke und Gruss, Jogy

Anzeige
AW: VBA - Anzeige ändern währen Scrollen durch Com
03.06.2008 15:00:52
fcs
Hallo Jogy,
eine Combobox hat ja schon noch ein paar Eigenschaften mehr als ListFillRange, Hintergrundfarbe und Font.
1. Wie erreichst Du bei Dir eigentlich, dass das ausgeklappte Listenfeld breiter ist als die ComboBox?
Eigenschaft ListWidth, diese steht standardmässig auf 0
2. Wie legst Du die Breite der Spalten fest?
ColumnWidths in der Form: 49,95 Pt;0 Pt;300 Pt;0 Pt;100 Pt
0 Pt für alle nicht anzuzeigenden Spalten
Über einen festen Wert in ColumnWidths ist es etwas ungeschickt, da dies sich ändern kann. Gibt es da eine dynamische Anpassung?
Die Dynamik müßtest du selber in der Initialisierungs-Prozedur des Userforms kreieren, indem du die Breite der Spalten an die Länge der zu erwartenden Texteinträge anpasst. Halte ich aber nicht für besonders sinnvoll.
Beispiel:

Private Sub UserForm_Initialize()
Dim dblBreite As Double, objZelle As Range, lngMaxLang As Long
'Comboxspaltenbreite dynamisch anpassen an Inhalt
With Worksheets("Tabelle2")
For Each objZelle In .Range(.Cells(2, 3), .Cells(.Rows.Count, 3).End(xlUp))
If Len(objZelle.Value) > lngMaxLang Then lngMaxLang = Len(objZelle.Value)
Next
'Werte für Arial 10, getestet mit Ziffern 0 bis 9, _
die tatsächliche darstellbare Zeichenzahl hängt vom Text ab (Groß-/Kleinbuchstaben etc.)
Select Case lngMaxLang
Case Is  40: dblBreite = 260
Case Else
dblBreite = 60 + (lngMaxLang - 10) * 5.5
End Select
End With
Me.ComboBox1.ColumnWidths = "49,95 Pt;0 Pt;" & Format(dblBreite, "0") & " Pt;0 Pt;100 Pt"
Me.ComboBox1.ListWidth = 170 + dblBreite
End Sub


Gruß
Franz

Anzeige
AW: VBA - Anzeige ändern währen Scrollen durch Com
03.06.2008 15:16:00
Jogy
Danke.
Die Eigenschaft ListWidth habe ich vollkommen übersehen... war ich wohl mal wieder blind.
Mit der dynamischen Anpassung hast Du recht, das ist wirklich ein etwas übertriebener Aufwand... so oft ändert sich das bei mir nun auch nicht, da kann ich auch schnell das Programm anpassen.
Ich glaube ich muss mich wirklich mal mehr mit den ganzen Dialogfeldern beschäftigen.
Nochmals Danke und Gruss,
Jogy

AW: VBA - Anzeige ändern währen Scrollen durch Combobo
03.06.2008 09:22:13
Ramses
Hallo
"...nur wie komme ich an den momentan mit der Maus markierte Eintrag..."
Das sollte deine Frage eigentlich schon beantworten.
Das MouseOver Ereignis wird für die Listbox ausgelöst und nicht für die jeweiligen Listeneinträge.
Und da kein anderer Eintrag markiert ist,....
Gruss Rainer

Anzeige
AW: VBA - Anzeige ändern währen Scrollen durch Combobo
03.06.2008 09:38:00
fcs
Hallo Jogy,
verwende ggf. die Combobox aus der Symbolleiste Steuerelemente-Toolbox und erstelle deine Combobox mehrspaltig (ColumnCount > 1). Die Zusatzinformation stellst du in der/den weiteren Spalten dar; dann kommst du ohne weitere Ereignis-Makros aus.
Falls du die Daten aus einem Tabellenbereich einliest (RowSource/ListFillRange ist gesetzt) dann kannst du unerwünschte Spalten ausblenden indem du ihre Breite unter ColumWidths auf 0Pt setzt.
Die Combobox kann dann auch so konfiguriert werden, dass die Auswahl an Hand des Textes in einer der anderen Spalten erfolgt(Eigenschaft: TextColumn). Während der Wert der ComboBox durch die BoundColumn-Eigenschaft festgelegt wird.
Gruß
Franz

Anzeige
AW: VBA - Anzeige ändern währen Scrollen durch Combobo
03.06.2008 09:49:00
Jogy
Hallo Franz,
hatte vergessen zu erwähnen, dass sich die ComboBox in einem Formular und nicht in einem Tabellenblatt befindet.
Gruss, Jogy

AW: VBA - Anzeige ändern währen Scrollen durch Combobo
03.06.2008 10:01:00
Ramses
Hallo
"...dass sich die ComboBox in einem Formular und nicht in einem Tabellenblatt befindet...."
Das tut doch nichts zur Sache, die Combobox in der UF kann genauso konfiguriert werden.
Gruss Rainer

AW: VBA - Anzeige ändern währen Scrollen durch Combobo
03.06.2008 10:36:00
Jogy
Da hast Du recht... geht aber nicht, da die hinter der Nummer stehende Materialliste recht lang sein kann und daher den Rahmen sprengen würde.
Gruss, Jogy

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige