Beim Start COMBOBOX leer wieso

hallo habe das Problem das beim Start die Combobox leer ist.
Verwende Boundcolumn 0 brauche in LinkedCell Zahlen. Wenn ich
das in 1 veränder wird eine Auswahl in Combox beim Start
angezeigt. Aber ohne Boundcolumn 1 muß das doch auch gehen.
Beim Start sieht man manchmal eine hunderstek Sek. etwas aufblitzen aber es ist gleich wieder weg.

Auch das Private Sub Form_Load()
Textkategorie.ListIndex = 0
End Sub
hat nicht geholfen.

Habe schon in manchen Foren gefragt und bisher hat nichts geholfen. Manche sagen das bei ihnen dieses Problem gar nicht auftaucht.
Was soll denn bei meinem Excel anders sein’??

Wer weiß des Rätzels Lösung. Wer weiß was ?

Hallo Xen55.

Poste doch mal den ganzen Code. Mehr Details werden helfen. Befinden wir uns in Excel-VBA (Stichwort „LinkedCell“) oder in Visual Basic?
In Excel-VBA gibt es das Form_Load-Ereignis nicht, dort heißt das Äquivalent „UserForm_Initialize“.

Viele Grüße
Carsten

Hallo Carsten.

http://www.uploadagent.de/files/1154198603/ComboProb…

Das ist die Datei auf das Problem beschränkt.
Wie befinden uns in Excel-VBA. Wie gesagt, wenn ich diese Datei aufrufe dann ist die Combobx leer. Erst wenn ich einen Wert auswähle bleibt er auch stehen. Würde gerne erreichen mit oder ohne VBA das ich bei einem öffnen dieser Datei meine Combobox inhalt den ich zuletzt gewählt habe aufzeigt. In Linkedcell zeigt er auch mit der Zahl (0 1 2) an welche ich als letztes angwählt habe.

In den Foren hat man mir diesen Code gesendet weil dieser angeblich das Problem beheben sollte…??? Bei mir nicht.
Andere sagten, wenn sie die Excel-Datei aufgerufen haben ist bei ihnen Combobox nicht leer… wieso dann bei mir?
Was ist des Rätzels Lösung???

Viele Grüße
Xen55

Hallo Xen55

http://www.uploadagent.de/files/1154198603/ComboProb…

Das ist die Datei auf das Problem beschränkt.
Wie befinden uns in Excel-VBA. Wie gesagt, wenn ich diese
Datei aufrufe dann ist die Combobx leer. Erst wenn ich einen
Wert auswähle bleibt er auch stehen. Würde gerne erreichen mit
oder ohne VBA das ich bei einem öffnen dieser Datei meine
Combobox inhalt den ich zuletzt gewählt habe aufzeigt. In
Linkedcell zeigt er auch mit der Zahl (0 1 2) an welche ich
als letztes angwählt habe.

Also bei mir (Win98/Excel97) tritt das gleiche Pänomen bei deiner Datei auf. Die Box wird noch kurzzeitig mit dem zuletzt eingestellten Wert angezeigt und dann verschwindet der Wert.

Die Ursache ist scheinbar, dass du als Wert für die Eigeschaft „BoundColumn“ 0 gewählt hast. In diesem Fall wird nicht der in der Liste stehende Wert in die LinkedCell eingetragen, sondern die Nummer des Eintrags beginnend bei 0.
Beim Öffnen der Datei wird dann der Wert in LinkedCell mit der Auswahlliste verglichen. Gibt es eine Übereinstimmung, dann wird der Inhalt auch in der Eigenschat „Text“ eingetragen und im Auswahlfeld angezeigt - falls nicht, dann eben nichts. Scheinbar hat man im Hause Microsoft vergessen die Variante Boundcolumn=0 bei der Initialisierung der Combobox zu berücksichtigen.

Folgendes Workbook_Open Makro initialisiert den Wert der Combo-Box. Es muß im VBA-Editor im VBA-Projekt unter „DieseArbeitsmappe“ eingefügt werden.

Gruß
Franz

Private Sub Workbook\_Open()
 Dim wks As Worksheet, Element As OLEObject, Combotext As String
 Set wks = Sheets("Tabelle1")
 With wks
 Set Element = .OLEObjects("Combobox1")
 Combotext = Application.WorksheetFunction.Index(.Range(Element.ListFillRange), \_
 .Range(Element.LinkedCell).Value + 1, 1)
 Element.Object.Text = Combotext
 End With
End Sub

Hallo Franz,

vielen DANK für deine Hilfe.

Ich benutze Excel XP. Habe mich gewundert als ich in anderen Foren und auch schon hier gefragt hatte, das dieser Fehler anscheinend nicht so bekannt ist.
Danke danke.

Xen55

Hallo Xen55,

es ist wohl eher so, dass die Einstellung 0 für die Eigenschaft „BoundColumn“ selten verwendet wird. Im Allgemeinen will man in der LinkedCell ja den in der Auswahlliste gewählten Wert eintragen und nicht die Zeile in der der Wert steht.

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Xen55.

Ein netter Ein-Zeiler:

Tabelle1.ComboBox1.ListIndex = Tabelle1.Range(Tabelle1.ComboBox1.LinkedCell)

im Workbook_Open-Ereignis von „DieseArbeitsmappe“.

Befindet sich denn die ComboBox auf dem Tabellenblatt? Du hast doch vorher immer von einem UserForm gesprochen.

Viele Grüße
Carsten

An carsten
Hallo, Carsten
mein Problem wurde gelößt. Trotzdem Danke für deine Hilfe.
Ja die Combobox ist auf dem Tabellenblatt, die UserForm war falsch, das war ein Tip von einem anderem Forum.
Was meinst du mit netter Einzeller ? Ist da etwas falsch gemacht? Kenne mich noch mit VBA nicht wirklich aus. Für Verbesserungschläge bin ich offen.

Viele Grüße
Xen55

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,
Danke für deine Super-Hilfe.
Wie kann ich diesem Code noch eine Combobox2, Combobox3, Combobox4, Combobox5, Combobox6, Combobox7 und Combobox8 einfügen.

Private Sub Workbook_Open()
Dim wks As Worksheet, Element As OLEObject, Combotext As String
Set wks = Sheets(„Tabelle1“)
With wks
Set Element = .OLEObjects(„Combobox1“)
Combotext = Application.WorksheetFunction.Index(.Range(Element.ListFillRange), _
.Range(Element.LinkedCell).Value + 1, 1)
Element.Object.Text = Combotext
End With
End Sub

Danke für jede Hilfe.
Gruß
Xen55

Hallo Xen55.

Was meinst du mit netter Einzeller ? Ist da etwas falsch
gemacht? Kenne mich noch mit VBA nicht wirklich aus. Für
Verbesserungschläge bin ich offen.

Der Code-Einzeiler, den ich geschrieben habe, ersetzt den Code von Franz und verwendet die ListIndex-Eigenschat der ComboBox.

Viele Grüße
Carsten

An carsten
Hallo Carsten,

ist eine super Lösung, vielen Dank für deine Hilfe.

Viele Grüße
Xen55

Hallo Xen55,

für weitere Checkboxen in der gleichen Tabelle schaut’s so aus:

Private Sub Workbook\_Open()
 Dim wks As Worksheet, Element As OLEObject, Combotext As String
 Set wks = Sheets("Tabelle1")
 With wks
 Set Element = .OLEObjects("Combobox1")
 Combotext = Application.WorksheetFunction.Index(.Range(Element.ListFillRange), \_
 .Range(Element.LinkedCell).Value + 1, 1)
 Element.Object.Text = Combotext

 Set Element = .OLEObjects("Combobox2")
 Combotext = Application.WorksheetFunction.Index(.Range(Element.ListFillRange), \_
 .Range(Element.LinkedCell).Value + 1, 1)
 Element.Object.Text = Combotext

 'usw. usw.

 End With
End Sub

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]