Registriert seit: 19.02.2016
Version(en): 2010
Hallo Leute,
ich habe in einer ListBox1 folgenden Eintrag:
ListBox1.AddItem "Mitte"
Jetzt möchte ich Einträge in Abhängigkeit einer Bedingung hinzufügen. Ist Bedingung A erfüllt, sollen die Einträge oberhalb dieser Mitte erfolgen,
ist Bedinung B erfüllt, erfolgen die Einträge unterhalb der Mitte.
Am Ende sollen die hinzugefügten Einträge ein solches Muster haben:
ListBox1.AddItem "Eintrag Oben3"
ListBox1.AddItem "Eintrag Oben2"
ListBox1.AddItem "Eintrag Oben1"
ListBox1.AddItem "Mitte"
ListBox1.AddItem "Eintrag Unten1"
ListBox1.AddItem "Eintrag Unten2"
ListBox1.AddItem "Eintrag Unten3"
Wie bekommt man so etwa hin?
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Moin!
Da Du ohnehin per .AddItem füllst, nutze Select Case
Select Case Bedingung
Case "A"
ListBox1.AddItem "Eintrag Oben3"
ListBox1.AddItem "Eintrag Oben2"
ListBox1.AddItem "Eintrag Oben1"
Case "B"
ListBox1.AddItem "Eintrag Unten1"
ListBox1.AddItem "Eintrag Unten2"
ListBox1.AddItem "Eintrag Unten3"
End Select
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• Gladiator
Registriert seit: 25.04.2016
Version(en): 2013
18.06.2017, 08:56
(Dieser Beitrag wurde zuletzt bearbeitet: 18.06.2017, 08:56 von Storax.)
Ich glaube, es ist eher so etwas gemeint
This method enables you to insert an item at a specific position within the
ListBox. :
https://msdn.microsoft.com/en-us/library...nsert.aspxFragt sich nur, wie man das für diesen Fall hinkriegt, wir sprechen hier ja nicht über .NET
Sehe gerade, geht ja ganz einfach
https://msdn.microsoft.com/de-de/library...35328.aspxDas kommt davon, wenn man optionale Parameter so gut wie nie gebraucht
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Ich warte mal ab, dass sich der TE meldet.
Vielleicht (eher wahrscheinlich) sollte man ohnehin anders an die Sache herangehen.
Dazu ist aber ein besser vorbereitetes Beispiel notwendig.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 19.02.2016
Version(en): 2010
Hallo,
ihr seid ja selbst am Sonntag fleißig wie die Bienen!
Meine ListBox1 Einträge habe ich jetzt fertig. Laßt mich die Aufgabenstellung (zunächst) bitte mal etwas abwandeln.
Habe folgendes Muster in den Einträgen:
Nummer Name W
oder
Nummer Name R
oder
Nummer Name irgendwas
Was ich bräuchte wäre folgendes, ich möchte auf Knopfdruck, also per CommandButton diese ListBox1 Einträge sortieren
und zwar so, dass in der ListBox1 dann erst alle mit dem W Eintrag erscheinen, dann mit dem R Eintrag und zuletzt mit dem "irgendwas".
Wie geht das?
Registriert seit: 25.04.2016
Version(en): 2013
18.06.2017, 10:07
(Dieser Beitrag wurde zuletzt bearbeitet: 18.06.2017, 10:07 von Storax.)
(18.06.2017, 09:58)Gladiator schrieb: ...Meine ListBox1 Einträge habe ich jetzt fertig...
Dann hast Du ja sicher eine Beispieldatei, die Du zeigen kannst.
Zum Sortieren:
Bubblesort und abwandeln auf Deinen Fall, das dürfte hier völlig ausreichen.
Und was kommt als nächstes?
Folgende(r) 1 Nutzer sagt Danke an Storax für diesen Beitrag:1 Nutzer sagt Danke an Storax für diesen Beitrag 28
• Gladiator
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
18.06.2017, 12:58
(Dieser Beitrag wurde zuletzt bearbeitet: 18.06.2017, 12:59 von Kuwer.)
Hallo Gladiator,
hier mal ein Beispiel:
Tabelle1 | A | B |
1 | 111 | W |
2 | 112 | R |
3 | 113 | W |
4 | 114 | R |
5 | 115 | W |
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8 Zugehöriger Code (hier beispielhaft einem CommandButton hinterlegt):
Private Sub CommandButton1_Click()
Dim varQ As Variant
Dim i As Long, j As Long
varQ = Tabelle1.Range("A1").CurrentRegion.Value
With ListBox1
.Clear
.AddItem "Mitte"
For i = LBound(varQ) To UBound(varQ)
Select Case varQ(i, 2)
Case "R"
.AddItem varQ(i, 1)
Case "W"
.AddItem varQ(i, 1), j
j = j + 1
End Select
Next i
'MsgBox .List(j)
'.RemoveItem j
End With
End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• Gladiator
Registriert seit: 19.02.2016
Version(en): 2010
Habe die Aufgabe zunächst mal selbst gelöst. Aber Danke an euch! Uwe's Code werde ich dann morgen in meinem Projekt weiterverarbeiten.
Guter Ansatz.
Was mich noch interessieren würde:
Wenn ich eine mit Einträgen gefüllte ListBox habe, wie könnte ich diese Einträge in ein Feld schreiben?
Die Weiterverarbeitung von Daten ist ja häufig einfacher und schneller, wenn die Daten in einem
Array vorliegen.
Registriert seit: 29.09.2015
Version(en): 2030,5
Code:
sub M_snb()
with listbox1
sheets(1).cells(1).resize(.listcount,ubound(.list,2)+1)=.List
end with
End Sub
Und zum sortieren schau mal:
http://www.snb-vba.eu/VBA_Arraylist_en.html#L_11
Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:1 Nutzer sagt Danke an snb für diesen Beitrag 28
• Gladiator