Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1120to1124
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
Inhaltsverzeichnis

AddItem bei ComboBox/Sortieren

AddItem bei ComboBox/Sortieren
Nick
Hallo,
ich versuche gerade folgendes zu realisieren:
Ichhabe eine TextBox1 in die ich Zahlen eingeben kann, welche in der ComboBox als Zehnfaches ausgegeben werden (siehe VBA-Code). Um jetzt aber Zahlen kleiner als Zehnerschritte in die ComboBox1 mit aufzunehmen habe ich mittels Doubleclick schon einmal die Eingabe ermöglicht. Jetzt müsste noch der neue Zahleneintrag mittels AddItem denke ich in die Liste aufgenommen werden (vlt. eine KeyUp-Function?) . Schön wäre natürlich, wenn diese auch noch in einer richtigen Reihenfolge eingeordnet würde.
Hier mal ein Beispiel:
https://www.herber.de/bbs/user/66179.xls
Schöne Grüße,
Nick

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
hol Dir doch die Schrittfolge aus einer Zelle
26.11.2009 05:56:48
Matthias
Hallo Nick
Keine Ahnung, ob ich Dich richtig verstanden habe
Habs mal nach meinen Vorstellungen umgesetzt.
https://www.herber.de/bbs/user/66182.xls
Userbild
Gruß Matthias
AW: hol Dir doch die Schrittfolge aus einer Zelle
26.11.2009 07:16:46
Nick
Guten Morgen Matthias,
vielen Dank für deine Hilfe und die graphische Aufbereitung.
Ich wollte keine Schrittfolge vorgeben, sondern nur sporadisch hier und da eine Nummer zulassen, z.B.

10
20
23 
Schöne Grüße,
Nick
Anzeige
hab noch keinen Plan. sorry
26.11.2009 11:44:18
Matthias
Hallo Nick
Hab zwar schon ein wenig probiert, aber leider noch keine zufriedenstellende Lösung gefunden.
Im Moment sitzt mir jetzt die Zeit im Nacken.
Gruß Matthias
AW: hab noch keinen Plan. sorry
26.11.2009 19:04:34
Nick
Hi Matthias,
also mit der TextBox möchte ich nur eine Anzahl möglicher Kombinationen festlegen. Diese werden ja als Zehnfaches in der Combobox wiedergegeben. Jetzt ist ja generell nur die Auswahl der Zehnerschritte möglich.
Ich möchte jetzt nach Bedarf dem Bediener auch ermöglichen, Zahlen in die ComboBox zu ergänzen, die nicht das Zehnfache sind beispielsweise eine 34. Um die Eingabe zu ermöglichen, habe ich diese Doubleclick function gewählt. Fraglich ist nun, mit welcher Function die Zahl nun in die bestehende Liste aufgenommen werden kann (AddItem). Zusätzlich wäre es schön, wenn sie nicht nur am Ende der Liste erscheint, sondern der Größenordnung sortiert zwischen der nächst kleineren und größeren Zahl platziert wird.
Ich hoffe, dass es verständlich ist?
Schöne Grüße, Nick
Anzeige
AW: hab noch keinen Plan. sorry
27.11.2009 04:24:16
fcs
Hallo Nick,
mit dem nach folgenden Makro werden die im Auswahlfeld der Combobox eingegebenen Werte ggf. in der Liste nachgetragen. Mit dem Doppelklick kriegt man das wohl nicht hin.
Wenn noch eine Sortierung einbauen willst (suche im Forumsarchiv nach Lösung), dann muss diese vor der erneuten Zuweisung des eingegeben Wertes erfolgen.
Gruß
Franz
Private Sub ComboBox1_LostFocus()
Dim strValue As Variant
With Me.ComboBox1
If .ListIndex = -1 Then
strValue = .Value
.AddItem strValue
.Value = strValue
End If
End With
End Sub

noch eine Ergänzung zu fcs Vorschlag
27.11.2009 08:52:32
Matthias
Hallo Nick
Das Beispiel von fcs find ich gut. :o)
Vorschlag:
Bau die fett markierte Zeile mit ein, sonst hast Du, wenns ungünstig läuft
irgendwann eine Liste mit 10 oder mehr leeren Einträgen.
Private Sub ComboBox1_LostFocus()
Dim strValue As Variant
With Me.ComboBox1
If .ListIndex = -1 Then
strValue = .Value
If .Value  "" Then .AddItem strValue
.Value = strValue
End If
End With
End Sub
Wäre nett, wenn Du eine Lösung fürs Sortieren gefunden hast, diese auch hier mitzuteilen.
Das hätte dann den positiven Nebeneffekt, das ich und/oder andere Excelfreunde
auch noch etwas dazulernen.
Gruß Matthias
Anzeige
AW: Listbox, Combox sortieren
27.11.2009 12:29:39
fcs
Hall Nick und Mathias,
hier ein von mir aus dieser Quelle ( https://www.herber.de/forum/archiv/640to644/t643881.htm#643949 ) leicht modifizierter Code zum Sortieren von per AddItem oder Array-Zuweisung für List erstellten Auswahllisten von Comboboxen und Listboxen.
Gruß
Franz
'modifizierter Code für ComboBox1_Lostfocus im Tabellenmodul
Private Sub ComboBox1_LostFocus()
Dim strValue As Variant, objBox As Object
'Eingegebener Wert, der noch nicht in Auswahliste ist, wird ergänzt
With Me.ComboBox1
If .ListIndex = -1 And .Value  "" Then
strValue = .Value
.AddItem strValue
Set objBox = Me.ComboBox1
SortBox cltBox:=objBox, intSpalten:=1, intSpalte:=1, bytWie:=2
.Value = strValue
End If
End With
End Sub
'####   Code in einem allgemeinen Modul    #####
'Original leicht modifiziert - cltBox als Object statt Control deklariert, so funktioniert es _
für List-/Comboboxen in Tabellen und Userforms
' Quelle Original: http: _
//www.herber.de/forum/archiv/640to644/t643881.htm#643949
Option Explicit
Sub SortBox(cltBox As Object, intSpalten As Integer, _
intSpalte As Integer, Optional bytWie As Byte = 1)
' So DIS 28.04.05 - modified fcs
' SortBox sortiert nicht gebundene List- und Comboboxen. Gebundene List- und Comboboxen
' (Angaben bei RowSource oder ListFillRange können nicht sortiert werden!!!)
' cltBox     : Name der Listbox die sortiert werden soll (als Object!!!!).
' intSpalten : Wieviele Spalten sollen mit sortiert werden. Sollte der Anzahl der Spalten
'              in der Listbox entsprechen
' intSpalte  : Nach welcher Spalte soll sortiert werden.
' bytWie     : 1 oder Nicht angegeben als Text
'            : 2 als Zahl, dann muß die ganze Spalte Zahlen enthalten.
'            : 3 als Datum, dann muß die ganze Spalte Datumwerte enthalten.
' Aufruf zum Beispiel so: ListBox1 mit 7 Spalten, Sortierung nach Spalte 1 Sortierordnung Text
' SortBox ListBox1, 7, 1  oder SortBox ListBox1, 7, 1, 1
' Oder so    : Listbox17 mit 2 Spalten, Sortierung nach Spalte 2 Sortierordnung Zahlen
' SortBox ListBox17, 2, 2, 2
' oder so eine Spalte, sortiert nach Zahl
' SortBox cltBox:=objBox, intspalten:=1, intSpalte:=1, bytWie:=2
Dim intLast As Integer, intNext As Integer, intCounter As Integer, intFehler As Integer
Dim strTmp As String, strFehlertext As String
Dim variLast As Variant, variNext As Variant
On Error GoTo Errorhandler
intFehler = 0
With cltBox
For intLast = 0 To .ListCount - 1
For intNext = intLast + 1 To .ListCount - 1
Select Case bytWie
Case 1
intFehler = 0
variLast = CStr(.List(intLast, intSpalte - 1))
variNext = CStr(.List(intNext, intSpalte - 1))
Case 2
intFehler = 1
variLast = CDbl(.List(intLast, intSpalte - 1))
variNext = CDbl(.List(intNext, intSpalte - 1))
Case 3
intFehler = 2
variLast = CDate(.List(intLast, intSpalte - 1))
variNext = CDate(.List(intNext, intSpalte - 1))
End Select
intFehler = 0
If variLast > variNext Then
For intCounter = 0 To intSpalten - 1
strTmp = CStr(.List(intLast, intCounter))
.List(intLast, intCounter) = CStr(.List(intNext, intCounter))
.List(intNext, intCounter) = strTmp
Next intCounter
End If
Next intNext
Next intLast
End With
Exit Sub
Errorhandler:
Select Case intFehler
Case 0
strFehlertext = "In der Listbox Sortierung ist ein Fehler aufgetreten !"
Case 1
strFehlertext = "Nicht alle Werte in der zu sortierenden Spalte sind Zahlen !"
Case 2
strFehlertext = "Nicht alle Werte in der zu sortierenden Spalte sind Datumswerte !"
Case Else
strFehlertext = "Unerwarteter Fehler !"
End Select
MsgBox strFehlertext & " Bitte informieren Sie 'So' ! " & vbCr & vbCr & _
"Fehler aufgetreten in " & cltBox.Name & " !" & vbCr & _
"Fehlernummer = " & Err.Number & vbCr & _
"Fehlerbeschreibung = " & Err.Description & vbCr & _
"Fehlersource = " & Err.Source, vbCritical, " Meldung vom Makro SortBox !"
End Sub

Anzeige
AW: Listbox, Combox sortieren
27.11.2009 19:59:31
Nick
Hallo Franz, hallo Matthias,
wow. Ihr habt was drauf! Vielen Dank für die schnelle Hilfe.
Schöne Grüße,
Nick

50 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige