ComboBox-Additem

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

Betrifft: ComboBox-Additem
von: Andreas
Geschrieben am: 31.03.2005 10:30:22
Hallo zusammen,
habe ein Formular mit einem Kundenfeld, jetzt will ich dass bei auf dieses Feld eine Combobox aufgeht die meine Kundennamen beinhaltet. Bei Auswahl eines Kunden soll dieser in Zelle "A6" eingetragen werden.
Sollte der Kunde nicht in der Liste sein, muss ein Eingabefeld öffnen, dass es ermöglicht neue Kunden zuzufügen.
Die Kundenliste soll in der Combobox auch Alphabetisch geordnet sein.
Bin leider erste soweit:


Private Sub ComboBox1_Click()
    ComboBox1.AddItem "Kunde1"
    ComboBox1.AddItem "Kunde2"
    ComboBox1.AddItem "Kunde3"
    ComboBox1.AddItem "Kunde4"
    ComboBox1.AddItem "Kunde5"
End Sub

Wer hat dazu Lösungen?
Schönen Gruss vom Bodensee Andreas
Bild

Betrifft: AW: ComboBox-Additem
von: Tobias Marx
Geschrieben am: 31.03.2005 10:37:21
Servus!
Also erst einmal wollte ich loswerden, dass du in eine ComboBox auch etwas eigenes eintragen kannst, also nicht zwingend ein neues Eingabefeld brauchst, sondern es sofort in die ComboBox eintragen kannst.
Wenn du die Kunden eintraegst, kannst du sie ja gleich alphabetisch sortieren, hier muss also kein spezieller Sortier-Algorithmus herhalten.
Nun aber der Code:


Private Sub ComboBox1_Change()
  Range("A6").Value = ComboBox1.Value
End Sub

'naechste Prozedur

Private Sub UserForm_Activate()
  ComboBox1.AddItem ("Kunde1")
  ComboBox1.AddItem ("Kunde2")
End Sub


Gruss

Tobias
Bild

Betrifft: AW: ComboBox-Additem
von: Tobias Marx
Geschrieben am: 31.03.2005 10:53:33
Servus!
Noch eine etwas groessere Aktion, mit Umweg ueber eine extra Datei (kunden.xls), die die Kundendatenbank beinhaltet, und die Werte auch dort rein schreibt und von dort ausliest.

Private Sub ComboBox1_Change()
'Bei jedem aendern der ComboBox veraendert sich der Wert in A6
  Range("A6").Value = ComboBox1.Value
End Sub
Private Sub CommandButton1_Click()
'hier benuetze ich einen CommandButton, um Namen hinzuzufuegen
'sortiert wirds auch gleich alphabetisch
  normbook = ActiveWorkbook.Name
  Windows("kunden.xls").Activate
  Worksheets("Tabelle1").Select
  endup = Range("A65536").End(xlUp).Row
  Range("A" & endup).Activate
  ActiveCell.Value = ComboBox1.Value
    Columns("A:A").Select
    Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
  Windows(normbook).Activate
End Sub
Private Sub UserForm_Activate()
'Beim Aktivieren der Userform wird die Kundenliste automatisch eingelesen
'Die "kunden.xls" muss dazu aber geoeffnet sein!
  normbook = ActiveWorkbook.Name
  Windows("kunden.xls").Activate
  Worksheets("Tabelle1").Select
  endup = Range("A65536").End(xlUp).Row
  For i = 1 To endup
  ComboBox1.AddItem (ActiveCell.Value)
  Next i
  Windows(normbook).Activate
End Sub

Hab leider grad keine Moeglichkeit, es zu testen, wenns Fehler gibt, meld dich einfach nochmal.
Gruss

Tobias
Bild

Betrifft: AW: ComboBox-Additem
von: Tobias Marx
Geschrieben am: 31.03.2005 11:07:40
Boeser kleiner Fehler:
Range("A" & endup).Activate
muss
Range("A" & endup + 1).Activate
heissen.

Gruss

Tobias
Bild

Betrifft: AW: ComboBox-Additem
von: Andreas
Geschrieben am: 31.03.2005 11:29:53
Hallo Tobias,
danke für deine schnelle Hilfe, aber irgenwie läuft das bei mir nicht, bekomme Typenunverträglichkeit bei"normbook = ActiveWorkbook.Name".
Habe ein Workbook mit Name Kunden.XLS geöffnet, wobei eine Lösung mit einem Tabellenblatt mit Namen Kunden wäre auch möglich.
Gruss Andreas
Bild

Betrifft: AW: ComboBox-Additem
von: Tobias Marx
Geschrieben am: 31.03.2005 11:37:23
Servus!
So sollts gehen, diesmal mit einer Tabelle im selben Workbook. Wie gesagt, is halt untested, wenn Fehler da sind, einfach nochmal melden!

Private Sub ComboBox1_Change()
'Bei jedem aendern der ComboBox veraendert sich der Wert in A6
  Range("A6").Value = ComboBox1.Value
End Sub
Private Sub CommandButton1_Click()
'hier benuetze ich einen CommandButton, um Namen hinzuzufuegen
'sortiert wirds auch gleich alphabetisch
  Worksheets("Kunden").Select
  endup = Range("A65536").End(xlUp).Row
  Range("A" & endup + 1).Activate
  ActiveCell.Value = ComboBox1.Value
    Columns("A:A").Select
    Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
  Worksheets("Tabelle1").Select
End Sub
Private Sub UserForm_Activate()
'Beim Aktivieren der Userform wird die Kundenliste automatisch eingelesen
'Die "kunden.xls" muss dazu aber geoeffnet sein!
  Worksheets("Kunden").Select
  endup = Range("A65536").End(xlUp).Row
  For i = 1 To endup
  ComboBox1.AddItem (ActiveCell.Value)
  Next i
  Worksheets("Tabelle1").Activate
End Sub

Gruss

Tobias
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Papierformat einstellen"