Thema Datum  Von Nutzer Rating
Antwort
18.02.2014 15:35:12 Nadine
Solved
Blau ausgewählte Elemente einer Listbox nach erneutem Aufrufen automatisch markieren
20.02.2014 10:06:14 Gast87728
Solved
20.02.2014 16:42:46 Gast68747
NotSolved

Ansicht des Beitrags:
Von:
Gast87728
Datum:
20.02.2014 10:06:14
Views:
1328
Rating: Antwort:
 Nein
Thema:
ausgewählte Elemente einer Listbox nach erneutem Aufrufen automatisch markieren

Hallo nochmal,

 

inzwischen hab ich eine Lösung gefunden. Ich schicke sie euch mal.

Vielleicht kann sie jemandem einmal helfen:

 

 

 

'marc the selected questions in the excel table; input parameters:listbox, tablename, tabname
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 jeden Eintrag in der 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
                    
                Else                                                        'wenn die Zeile nicht 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 = ""                  'setzt ein " " in der spalte in general
                         End If
                    Next j
                
                End If
             Next i
    End If
  Next
End Sub




'method, which creates a new tab and copies the selected questions into it
Sub createNewTab(ByVal NewTabName As String, ByVal OldTabName As String)

'check if there is no NewTabName; if it already exist exit the sub
Dim i As Integer
For i = 1 To Worksheets.Count
If Worksheets(i).Name = NewTabName Then
Exit Sub
End If
Next
'add a new sheet in green
Sheets.Add
ActiveSheet.Tab.ColorIndex = 4
ActiveSheet.Name = NewTabName
End Sub



'method, which copies the selected questions into the new tabs
Sub copyQuestions(ByVal NewTabName As String, ByVal OldTabName As String)
For j = 2 To 300                                                                'gehe von oben nach unten durch
         If Worksheets(OldTabName).Cells(j, 1).Value = "x" Then                     'wenn die frage in dem alten tab mit einm x markiert ist, dann
            If Worksheets(NewTabName).Cells(j, 2).Value = "" Then                       'prüfe ob in der zeile im neuen tab etwas steht -> nur reinkopieren, wenn die zeile leer ist, sonst gibt es doppelte zeichen
            Worksheets(OldTabName).Rows(j).Copy Worksheets(NewTabName).Rows(j)          'wenn die Zeile leer ist, dann kopieren die komplette zeile in das neue tab
            End If
         Else
            'Worksheets(NewTabName).Rows(j).Value = ""                               'xxxxxxxxx wenn die frage nicht mit einem x markiert ist, schreibe "" in die Zeile im neuen Tab
            Worksheets(NewTabName).Rows(j).ClearContents
         End If
    Next
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
18.02.2014 15:35:12 Nadine
Solved
Blau ausgewählte Elemente einer Listbox nach erneutem Aufrufen automatisch markieren
20.02.2014 10:06:14 Gast87728
Solved
20.02.2014 16:42:46 Gast68747
NotSolved