Thema Datum  Von Nutzer Rating
Antwort
22.09.2008 17:40:47 Balta
NotSolved
25.09.2008 11:38:10 Holger
NotSolved
26.09.2008 01:16:14 Balta
NotSolved
Blau Aw:Aw:Aw:Listbox mit Case Auswahl
26.09.2008 10:56:45 Holger
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
26.09.2008 10:56:45
Views:
935
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:Listbox mit Case Auswahl
Hallo Balta,
ich gebe ungern meine Adresse heraus, weil ich aus einem Forum regelmäßig mit größeren Fragen bombadiert werde. Habe bitte Verständnis dafür. Außerdem bietet das Forum die Möglichkeit, dass sich auch andere in das Problem einklinken können, wenn ein Ansatz suboptimal sein sollte.
Ich verstehe dein Problem so, dass die ursprüngliche Reihenfolge der Einträge nach dem Transfer zwischen den ListBoxen erhalten bleiben soll, also immer Auto vor Motorrad vor Flugzeug, egal in welcher Reihenfolge die Werte ausgewählt wurden. Ich verstehe nicht, woher Fehlermeldungen auftreten sollen, weil ich dieses Makro auch einmal ausprobiert habe. Ich habe natürlich nur die angegebenen Subs verändert. Für die anderen ist diese Arbeit noch sinngemäß zu leisten.
Welche Fehlermeldungen treten in welcher Zeile auf?
Gruß
Holger

Balta schrieb am 26.09.2008 01:16:14:

Hallo Holger,

danke für dein Ansatz, nur leider funktioniert es nicht es ergeben sich lauter fehlmeldungen.

ich würde dir gerne mein Excelsheet zu senden, um besser mein problem zu erläutern.
falls du mir helfen möchtest schreib mir eine mail unter baltabalta@web.de

gruß

balta





Holger schrieb am 25.09.2008 11:38:10:

Hallo Balta,
ich empfehle, die Werte in der Listbox in ein Array zu schreiben, so dass du die Reihenfolge wieder herstellen kannst. Für die anderen Prozeduren musst du den Code entsprechend anpassen.

Private Liste()

Sub UserForm_Initialize()
ReDim Liste(2)
Liste(0) = "Auto"
Liste(1) = "Motorrad"
Liste(2) = "Flugzeug"
lstLinks.List = Liste
'Me.lstLinks.AddItem "Auto"
'lstLinks.AddItem "Motorrad"
'lstLinks.AddItem "Flugzeug"
End Sub

Sub cmdNachrechts_Click()
If lstLinks.ListIndex 0 Then
For i = 0 To UBound(Liste)
If Liste(i) = lstLinks.Text Then a = i: Exit For
Next i
If a = 0 Then
lstRechts.AddItem lstLinks.Value, 0
Else
For j = lstRechts.ListCount - 1 To 0 Step -1
For i = 0 To UBound(Liste)
If Liste(i) = lstRechts.List(j) Then b = i: Exit For
Next i
If b < a Then Exit For
Next j
lstRechts.AddItem lstLinks.Value, j + 1
End If
Else
lstRechts.AddItem lstLinks.Value, 0
End If
lstLinks.RemoveItem lstLinks.ListIndex
End Sub

Gruß
Holger



Balta schrieb am 22.09.2008 17:40:47:

Hallo VBA-Profis,
Habe ein großes Problem womit ich mich schon länger beschäftige, undzwar habe ich 2 Listboxen. sobald ich das UserForm starte, wird in das linke Listbox1 die Einträge Auto, Motorrad, Flugzeug eingetragen.
Dann kann ich diese Einträge einzel nach ListBox2 rüber schicken, miitels Button.
Nun hier ist der Knackpunkt: wenn ich in der reihenfolge bleibe gibts es kein Problem sobald ich aber Flugzeug als erstes rüber schicke zur ListBox2 danach Auto und dann Motorrad, sind die Meldungen komplett Falsch zu geordnet. Das Problem ist das in der ListBox1 wenn Sie eingetragen werden die Adressen Auto(0), Motorrad(1) und Flugzeug(2) haben. Schicke ich Sie nach ListBox2 dann verlieren Sie den Bezug und Es wird die Adresse ausgegeben Also Flugzeug(0), Auto(1), Motorrad(2).

Ich bräuchte dringend eine Lösung wie ich den Namen anwählen und nicht die Adresse.




Sub cmdAlleRechts_Click()
lstRechts.List = lstLinks.List
lstLinks.Clear
End Sub
Sub cmdAlleLinks_Click()
lstLinks.List = lstRechts.List
lstRechts.Clear
End Sub
Sub cmdLoeschenRechts_Click()
lstRechts.Clear
End Sub
Sub cmdLoeschenLinks_Click()
lstLinks.Clear
End Sub
Sub cmdNachrechts_Click()

If lstLinks.ListIndex < 0 Then
MsgBox "Bitte wählen Sie einen Eintrag!"
Exit Sub
End If
lstRechts.AddItem lstLinks.Value
lstLinks.RemoveItem lstLinks.ListIndex
End Sub
Sub cmdNachLinks_Click()
If lstRechts.ListIndex < 0 Then
MsgBox "Bitte wählen Sie einen Eintrag!"
Exit Sub
End If
lstLinks.AddItem lstRechts.Value
lstRechts.RemoveItem lstRechts.ListIndex
End Sub


Private Sub Senden_Click()
Select Case lstRechts.ListIndex
Case 0
lstRechts.ListIndex = Test1
MsgBox "auto"
'Call Auto
Case 1
lstRechts.ListIndex = Test2
MsgBox "Motorrad"
'Call Motorrad
Case 2
lstRechts.ListIndex = Test3
MsgBox "Flugzeug"
'Call Flugzeug
End Select
End Sub

Sub UserForm_Initialize()
Me.lstLinks.AddItem "Auto"
lstLinks.AddItem "Motorrad"
lstLinks.AddItem "Flugzeug"
End Sub

Sub cmdBack_Click(): Unload Me: End Sub




Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
22.09.2008 17:40:47 Balta
NotSolved
25.09.2008 11:38:10 Holger
NotSolved
26.09.2008 01:16:14 Balta
NotSolved
Blau Aw:Aw:Aw:Listbox mit Case Auswahl
26.09.2008 10:56:45 Holger
NotSolved