Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1188to1192
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
spalten mit werten aus Listbox ausblenden
marco
Hallo,
ich versuche mich momentan Werte direkt aus einer Listbox zu übernehmen und bei einer nicht Übereinstimmung die Spalte auszublenden.
Nun übernimmt zwar der Code "ListBox3.List(i) " den Wert aus der Listbox , aber die Spalten mit dem gleichen Wert wird auch ausgeblendet.
Meine Frage: geht sowas überhaupt? Oder welchen fehler mache ich?
Anbei mein Code:

Private Sub CMD14_Click()
Dim ilastcolumn As Integer, spalten As Integer, FW(1) As String, scd As Variant, i As Integer
ilastcolumn = Cells(1, Columns.Count).End(xlToLeft).Column
Set scd = CreateObject("Scripting.Dictionary")
For spalten = 3 To ilastcolumn
For i = 0 To ListBox3.ListCount - 1
scd(ListBox3.List(i)) = 1
'Wenn der markierte Eintrag nicht gefunden wurde, dann spalte ausblenden
If Mid$(Cells(1, spalten), 4, 1) = "9" Then
If Mid$(Cells(1, spalten), 10, 6)  ListBox3.List(i) Then
Columns(spalten).EntireColumn.Hidden = True
End If
ElseIf Mid$(Cells(1, spalten), 10, 6)  ListBox3.List(i) Then
Columns(spalten).EntireColumn.Hidden = True
End If
Next
Next spalten
End If
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: spalten mit werten aus Listbox ausblenden
03.12.2010 02:09:04
fcs
Hallo Marco,
wie ist deine Listbox denn eingerichtet?
Kann immer nur ein Wert ausgewählt werden oder ist Mehrfachauswahl möglich?
Bei Einfach-Auswahl muss du die Spalteninhalte mit dem Wert(Value) der Listbox vergleichen und nicht in einer Schleife alle Listboxwerte vergleichen.
Bei Mehrfach-Auswahl muss du in der Vergleichsschleife vor dem Wert-Vergleich die Selected-Eigenschaft des Listboxeintrags prüfen.
Gruß
Franz
AW: spalten mit werten aus Listbox ausblenden
03.12.2010 08:08:54
marco
Hallo Franz,
danke für die Rückantwort, zu dem für mich nicht ganz einfachen Thema.
Zu deinen Fragen:
Ich fülle die Listbox3 aus einer Listbox2 ( bis zu 400 werte stehen zur verfügung) . Aus Listbox2 werden durch anclicken diese werte in listbox3 übernommen.
Code:
Private Sub ListBox2_Click()
Dim scd, c As Variant, i As Long
ListBox3.AddItem ListBox2.Value
' Doppelte löschen:
Set scd = CreateObject("Scripting.Dictionary")
For i = 0 To ListBox3.ListCount - 1
scd(ListBox3.List(i)) = 1
Next
ListBox3.Clear
For Each c In scd.keys
ListBox3.AddItem (c)
Next
Set scd = Nothing
End Sub
Jetzt soll diese übernommenen werte, durch die beschriebene Ausblendschleife bearbeitet werden.
In diesem Zustand sind keine Werte in der Listbx3 markiert oder angewählt. Sondern es sollen alle werte in der Listbox3 über eine Schleife in die Ausblendschleife übenommen werden.
Wenn dies so nicht geht, werde ich einen arbeitschritt einfügen und die übernommenen werte aus listbox2 in eine einen definierten bereich in eine Tabelle übenehmen und dann mit diesen Werten ausblenden.
Gruß
Marco
Anzeige
AW: spalten mit werten aus Listbox ausblenden
03.12.2010 13:36:44
fcs
Hallo Marco,
du muss die Prüfung der Listboxeintrage mit dem Teil-String der Spalteneinträge anders aufbauen.
Wenn du immer auf Listboxeintrag ist ungleich Teilstring prüfst, dann ist diese Bedingung spätestens beim 2. Eintrag erfüllt und die Spalte wird ausgeblendet.
Ich hab auch mal das meiner Meinung nach unnötige Beiwerk aus der Prozedur rausgeschmissen.
Gruß
Franz
Private Sub CMD14_Click()
Dim ilastcolumn As Integer, spalten As Integer, i As Integer
Dim bHideColumn As Boolean
Columns.Hidden = False 'alle SPalten einblenden
ilastcolumn = Cells(1, Columns.Count).End(xlToLeft).Column
For spalten = 3 To ilastcolumn
bHideColumn = True
For i = 0 To ListBox3.ListCount - 1
'Prüfung, ob 4. Zeichen = 9
If Mid$(Cells(1, spalten), 4, 1) = "9" Then
'Prüfung, ob Listboxeintrag mit Teilstring in Spalte übereinstimmt
If Mid$(Cells(1, spalten), 10, 6) = ListBox3.List(i) Then
bHideColumn = False
Exit For
End If
Else
End If
Next
'Wenn der Eintrag nicht gefunden wurde, dann Spalte ausblenden
Columns(spalten).EntireColumn.Hidden = bHideColumn
Next spalten
' End If 'zu diesem End If gibt es kein korrespondierendes If
End Sub

Anzeige
AW: spalten mit werten aus Listbox ausblenden
03.12.2010 16:08:37
Marco
Hallo Franz,
danke für die rückantwort, ich werde am montag nochmals versuchen.
gruß
Marco
AW: spalten mit werten aus Listbox ausblenden
06.12.2010 14:19:05
marco
Hallo Franz,
danke nochmals
hat soweit funktioniert
danke
marco

329 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige