Value-Eigenschaft bei ComboBox

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm Frame Label
Bild

Betrifft: Value-Eigenschaft bei ComboBox
von: MikeS
Geschrieben am: 28.11.2003 10:30:21

Hallo Leute,

ich möchte bei zwei ComboBoxen zur Laufzeit die Listwerte löschen,
was ich mit .cboTyp.Clear erledige.

Nun möchte ich mit .cboTyp.Value = "bitte auswählen" der
Value-Eigenschaft der ComboBox einen Wert zuweisen und erhalte
die Fehlermeldung, daß der Value-Wert nicht zugewiesen werden kann.

Was mache ich bloß falsch???



Sub cboTyp_einlesen()
  Dim BlattNr%, Line$, BlattName$
  Application.ScreenUpdating = False
  
  'Alle Label und Comboboxen zurücksetzen
  With frmHaupt
    .cboTyp.Clear
    .cboTyp.Value = "bitte auswählen"
    
.fraBezeichnung.Enabled = False
    .cboBezeichnung.Enabled = False
    .cboBezeichnung.Clear
    .cboBezeichnung.Value = "bitte auswählen"
    
.fraMeldung.Enabled = False
    .lblMöbelstring.Caption = "Keine Auswahl aktiv!"
    .lblMöbelstring.Enabled = False
    .cmdZwischenablage.Enabled = False
    .lblMeldung1.Caption = "Die Zwischenablage ist leer!!!"
    .lblMeldung2.Visible = False
    .lblMeldung1.Enabled = False
  End With
  
  'Feststellen, welche Line gewählt wurde
  If frmHaupt.optModularLine = True Then
    Line = "ML"
  ElseIf frmHaupt.optCompactLine = True Then
    Line = "CL"
  End If

  'Typen in cboTyp neu einlesen
  With frmHaupt.cboTyp
    .Clear
    For BlattNr = 1 To Worksheets.Count
      BlattName = Worksheets(BlattNr).Name
        If Left(BlattName, 2) = Line Then
          .AddItem (Mid(BlattName, 4, Len(BlattName) - 3))
        End If
    Next BlattNr
  End With
            
  Application.ScreenUpdating = True
End Sub



     Code eingefügt mit Syntaxhighlighter 2.5


Vielen Dank

MikeS
Bild


Betrifft: AW: Value-Eigenschaft bei ComboBox
von: Nike
Geschrieben am: 28.11.2003 11:02:09

Hi,
unten hast du die Syntax richtig,
nimm einfach AddItem

.cboTyp.AddItem "bitte auswählen"

Bye

Nike


Bild


Betrifft: nicht ganz, wie gewünscht
von: MikeS
Geschrieben am: 28.11.2003 11:15:38

Hi Nike,

mit AddItem habe ichs auch probiert.

Ich lösche vorher die ComboBox und möchte bei nichtausgeklappter Box
als Text "bitte auswählen" sehen
.

Mit AddItem ("bitte auswählen") füge ich eine Zeile hinzu und sehe bei
nichtausgeklappter Box "", wenn ich sie ausklappe sehe ich "bitte auswählen".

Noch 'ne Idee???

Ich weiß, es ist Freitag und da fällt es manchal besonders schwer,
noch was aus sich rauszuholen.

Danke Dir.

Ciao MikeS


Bild


Betrifft: AW: nicht ganz, wie gewünscht
von: Nike
Geschrieben am: 28.11.2003 11:23:47

Hi,
poste mal die Datei, denn das hier funkt eigentlich:


Private Sub UserForm_Initialize()
ComboBox1.Value = "Test"
ComboBox1.Clear
ComboBox1.Value = "Test"
End Sub


Bye

Nike


Bild


Betrifft: AW: nicht ganz, wie gewünscht
von: MikeS
Geschrieben am: 28.11.2003 12:00:16

Danke für Dein Angebot.

Mein Problem liegt nun bei der öffentlichen Variablen Typ.

Nach Auswahl im Kombifeld Typ soll das ausgewählte Blatt im Hintergrund
aktiviert und die Werte in die ComboBox eingelesen werden.

Der Typ hat aber den Wert "" ??? und das Blatt gibt's natürlich nicht.

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

Ich hab keinen Ducrhblick mehr.

Bitte um Hilfe, danke.

Ciao Mike


Bild


Betrifft: AW: nicht ganz, wie gewünscht
von: GerdW
Geschrieben am: 28.11.2003 13:07:28

Mach bei deiener Combobox eine Abfrage so in der Art:

If deineCombobox.Listindex > -1 then

'dein Code...

End if

Gerd


Bild


Betrifft: AW: nicht ganz, wie gewünscht
von: Nike
Geschrieben am: 28.11.2003 16:34:15

Hi,
ich würde den fest eingegebenen Wert, den du der Dropdownbox
über Eigenschaften zugewiesen hast entfernen
und erst beim Initialize zuweisen,
denn nur so kannst du ihn löschen.
Dieser Wert läßt sich durch Clear nicht entfernen...

Bye

Nike

P.S. Kleiner Tip noch um nicht unnötig Blätter aktivieren zu müssen,
Anstelle von
Worksheets(BlattName).Activate
Start = 2
Ende = ActiveSheet.[A1].End(xlDown).Row

geht's auch so:
dim wks as worksheet
set wks = Worksheets(BlattName)
Start = 2
Ende = wks.cells(1,1).End(xlDown).Row

so kannst du immer auf das Worksheet greifen
ohne mit dem Activesheet Gefahr zu laufen
auf das falsche zu greifen ;-)


Bild


Betrifft: Danke Euch
von: MikeS
Geschrieben am: 28.11.2003 17:12:20

Werde es umstricken. Danke für den Tipp!

Happy Weekend

Ciao Mike


Bild

Beiträge aus den Excel-Beispielen zum Thema " Value-Eigenschaft bei ComboBox"