Thema Datum  Von Nutzer Rating
Antwort
Rot ausgewählte Elemente einer Listbox nach erneutem Aufrufen automatisch markieren
18.02.2014 15:35:12 Nadine
NotSolved

Ansicht des Beitrags:
Von:
Nadine
Datum:
18.02.2014 15:35:12
Views:
1418
Rating: Antwort:
  Ja
Thema:
ausgewählte Elemente einer Listbox nach erneutem Aufrufen automatisch markieren

Hallo zusammen,

ich stecke mal wieder an einer Stelle fest. Vielleicht habt ihr eine Idee bzw. einen Ansatz dazu:

Also ich habe eine Tabelle in Excel und eine UserForm mit Listboxen. Im Laufe meines Programmes werden Elemente aus der Tabelle in die Listboxen geladen.

Die Listbox ist so eingestellt, dass man mehrere Elemente gleichzeitig auswählen kann. (MultiSelect= 1-fmMultiSelectMulti)

Nachdem man also Elemente ausgewählt hat und einen Button klickt, werden zuerst die ausgewählten Elemente in der Exceltabelle markiert. ( Ich schreibe ein "x" in die Zelle vor dem Element)

Sub MarcSelectedItems(ByVal Listbox As MSForms.Listbox, ByVal Tabellenname As String, ByVal tabname As String)
 
 Dim oLo As ListObject
 Dim j As Integer
 j = 3
 
 For Each oLo In Sheets(tabname).ListObjects                 'passende Tabelle in general suchen
    If oLo.Name = Tabellenname Then                             'wenn der übergebene Name mit dem Tabellenobjekt auf der Generalseite übereinstimmt
            For i = 0 To Listbox.ListCount - 1                         'geh durch die Listbox durch
                If Listbox.Selected(i) Then                                 'wenn die Zeile markiert wurde, dann
                question = Listbox.List(i, 0)                               'schreibe die ausgewählte Frage in die Variable question
                    For j = 2 To 200                                              'durchsuche den übergebenen Tab  nach der frage, die jetzt in question steht
                        If question = Worksheets(tabname).Cells(j, 2).Value Then  'wenn die frage gefunden wurde
                        Worksheets(tabname).Cells(j, 1).Value = "x"               'setzt ein x in der spalte in general
                         End If
                    Next j
                End If
             Next i
    End If
  Next
End Sub


Danach rufe ich eine Methode auf, die neue Taps in Excel erstellt und die Zeilen, die mit einem "x" markiert wurden, in diese neuen Taps kopiert.

Sub createNewTab(ByVal NewTabName As String, ByVal OldTabName As String)

'add a new sheet in green
Sheets.Add
ActiveSheet.Tab.ColorIndex = 4
ActiveSheet.Name = NewTabName
'fill in all selected questions
For j = 2 To 300
    If Worksheets(OldTabName).Cells(j, 1).Value = "x" Then               'wenn die frage in dem alten tab mit einm x markiert ist, dann
    Worksheets(OldTabName).Rows(j).Copy Worksheets(NewTabName).Rows(j)    'kopieren die komplette zeile in das neue tab
    End If
Next
End Sub

 

Das funktioniert alles ohne Probleme.

Jetzt kommt mein "Problem".

Ich möchte, dass bei einem erneuten Aufruf die Elemente in der Listbox, die ich in dem Ablauf davor schon einmal ausgewählt habe, automatisch wieder ausgewählt sind.

(Vielleicht hilft das dabei: die Elemente sind in Excel immernoch durch das "x" markiert.)

Bei dem erneuten Aufruf sollen auch keine neuen Taps in Excel erstellt werde, da diese ja schon vorhanden sind.

Man soll dann die Möglichkeit haben die Auswahl in der Listbox zu ändern/ zu ergänzen und in den vorher erstellten neuen Taps sollen dann die aktuell ausgewählten Elemente erscheinen.

 

Ich hoffe ich konnte das einigermaßen verständlich beschreiben und ihr könnt mir helfen.


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
Rot ausgewählte Elemente einer Listbox nach erneutem Aufrufen automatisch markieren
18.02.2014 15:35:12 Nadine
NotSolved