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

Value-Eigenschaft bei ComboBox

Value-Eigenschaft bei ComboBox
28.11.2003 10:30:21
MikeS
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

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Value-Eigenschaft bei ComboBox
28.11.2003 11:02:09
Nike
Hi,
unten hast du die Syntax richtig,
nimm einfach AddItem

.cboTyp.AddItem "bitte auswählen"

Bye

Nike
nicht ganz, wie gewünscht
28.11.2003 11:15:38
MikeS
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
Anzeige
AW: nicht ganz, wie gewünscht
28.11.2003 11:23:47
Nike
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
AW: nicht ganz, wie gewünscht
28.11.2003 12:00:16
MikeS
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
Anzeige
AW: nicht ganz, wie gewünscht
28.11.2003 13:07:28
GerdW
Mach bei deiener Combobox eine Abfrage so in der Art:

If deineCombobox.Listindex > -1 then

'dein Code...

End if

Gerd
AW: nicht ganz, wie gewünscht
28.11.2003 16:34:15
Nike
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 ;-)
Anzeige
Danke Euch
28.11.2003 17:12:20
MikeS
Werde es umstricken. Danke für den Tipp!

Happy Weekend

Ciao Mike

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige