Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1088to1092
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
Inhaltsverzeichnis

Dropdownbox Filterung nixht angrenzender Zellen

Dropdownbox Filterung nixht angrenzender Zellen
Reinhardt
Liebe Excelfreunde,
ich habe mal wieder zwei Probleme:
In anhängender Datei habe ich eine Ergebnisliste die ich durch eine Dropdownbox-Filterung auswerten möchte. Die Länder in der Dropdownbox können mehrfach auftauchen. Die Dropdownbox habe ich mit "Daten und Gütigkeit" erstellt.
https://www.herber.de/bbs/user/63396.xls
Folgende Probleme:
1. Es gibt Duplikate in der Dropdownbox
2. Wenn ich in der Dropdownbox ein Land auswähle, soll er mir im Ergebnisbereich nur das in der Dropdownbox ausgewählte Land und seinen Werten anzeigen.
Habt Ihr eine "einfache" Idee?..VBA Kenntinsse sind nur sehr rudimentär vorhanden :-(
Danke im Voraus!!
Reini
AW: Dropdownbox Filterung nixht angrenzender Zellen
24.07.2009 10:04:49
Helmut
Hallo Reini,
benutze doch den Autofilter.
Gruß
Helmut
AW: Dropdownbox Filterung nixht angrenzender Zellen
24.07.2009 10:16:31
Tino
Hallo,
meinst Du so, die Gültigkeitsliste wird beim aktivieren der Datei und beim betreten der Tabelle aktualisiert.
https://www.herber.de/bbs/user/63402.xls
Gruß Tino
AW: Dropdownbox Filterung nixht angrenzender Zellen
24.07.2009 10:43:09
Reinhardt
Hallo Tino,
danke für den Tip, das ist es..aber wie hast Du die Gültigkeitsbox mit dem Ergebnisbereich verknüpft?
Bin wohl doch nicht so wissend wie ich dachte...
Gruss
Reini
AW: Dropdownbox Filterung nixht angrenzender Zellen
24.07.2009 11:11:36
Tino
Hallo,
mit dem Makro Gueltigkeitsliste wird die Gültigkeitsliste ohne doppelte erstellt.
Mit dem Event Makro Worksheet_Change wird der Filer gesetzt.
Diese befinden sich als Code in Tabelle1.
Gruß Tino
Anzeige
kleine Ergänzung...
24.07.2009 11:30:58
Luschi
Hallo Tino,
da nicht jeder User ahnt, das man durch Löschen des Inhaltes der Zelle 'F3' den Filter abschalten kann, biete ich immer folgende Lösung an:
https://www.herber.de/bbs/user/63405.xls
Gruß von Luschi
aus klein-Paris
stimmt auch eine gute Variante. oT.
24.07.2009 11:34:50
Tino
AW: kleine Ergänzung...
24.07.2009 12:03:26
Reinhardt
Hallo Liebe Helfer,
danke fürs Feedback, die Filterung in VBA läuft bei mir, aber wie aktiviere ich die Gültigkeitsliste, bzw das Makro soll nicht auf dem Sheet Tabelle 1 Laufen, sondern auf dem sheet test. Aber der erkennt das nicht. (Laufzeitfehler)
Ich glaub ich bin kurz vorm Ziel...
Danke für Eure Hilfe nochmal!
Gruss
Reini
Anzeige
AW: kleine Ergänzung...
24.07.2009 12:19:13
Tino
Hallo,
ohne jetzt die Optimierung von Luschi einzubauen geht es so.
Wenn der Code im Klassenmodul Tabelle test steht, musst Du bei allen Daten die sich auf eine andere Tabelle beziehen den Ort also die Tabelle mit angeben.
Sonst beziehen sich die Zellen immer auf die Tabelle wo auch der Code steht.
kommt als Code in test
Option Explicit 
 
Private Sub Gueltigkeitsliste() 
Dim Dic As Object 
Dim strFilterText As String 
Dim Arr 
Dim L As Long 
 
With Sheets("Tabelle1") 
    Set Dic = CreateObject("Scripting.Dictionary") 
    Arr = .Range("B11", .Cells(.Rows.Count, 2).End(xlUp)) 
     
    For L = 1 To Ubound(Arr) 
      If Arr(L, 1) <> "" Then 
        Dic(Arr(L, 1)) = 0 
      End If 
    Next 
     
    strFilterText = Join(Dic.keys, ",") 
     
    With Range("F3").Validation 
            .Delete 
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=strFilterText 
    End With 
End With 
End Sub 
 
Private Sub Worksheet_Activate() 
 Call Gueltigkeitsliste 
End Sub 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
If Target.Address = "$F$3" And Target.Cells.Count = 1 Then 
 With Application 
  .EnableEvents = False 
    With Sheets("Tabelle1") 
        If Target <> "" Then 
         .Range("B10:B" & .Cells.SpecialCells(xlCellTypeLastCell).Row).AutoFilter 1, Range("F3"), , , False 
        Else 
         If .FilterMode Then .Range("B10").AutoFilter 
        End If 
    End With 
  .EnableEvents = True 
 End With 
End If 
End Sub 
 
 
 
Gruß Tino
Anzeige
AW: kleine Ergänzung...
24.07.2009 13:27:52
Reinhardt
Hallo Tino,
danke für Deine Info,sorry das ich nochmal nerve..es klappt mit den Duplikaten in der Dropdown einfach nicht... Meine Ergebnistabelle und der VBA Code befinden sich alle im selben sheet, das Filtern geht, aber er zeigt mir in der dropdown Box trotzdem noch die doppelten Werte an.
In der Zelle H3 befindet sich die dropdownbox und die Filterkriterien ab Zelle D25 (incl Überschrift).
Im VBA Editor hat das sheet den Namen Tabelle16, aber im Excel (unten im Reiter) steht Tabelle1?
Option Explicit
Private Sub Gueltigkeitsliste()
Dim Dic As Object
Dim strFilterText As String
Dim Arr
Dim L As Long
Set Dic = CreateObject("Scripting.Dictionary")
Arr = Range("D26", Cells(Rows.Count, 2).End(xlUp))
Dic("") = 0
For L = 1 To UBound(Arr)
If Arr(L, 1)  "" Then
Dic(Arr(L, 1)) = 0
End If
Next
strFilterText = Join(Dic.keys, ",")
With Range("H3").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=strFilterText
End With
End Sub

Private Sub Worksheet_Activate()
Call Gueltigkeitsliste
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$3" And Target.Cells.Count = 1 Then
With Application
.EnableEvents = False
Select Case Target.Value
Case "", Is = ""
If ActiveSheet.FilterMode Then
ActiveSheet.Range("D25").AutoFilter
End If
Case Is  ""
ActiveSheet.Range("D25:D" & ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row). _
AutoFilter 1, Range("H3"), , , False
End Select
.EnableEvents = True
End With
End If
End Sub
Ich bin echt am verzweifeln..
Danke für Hilfe im Voraus nochmal
Reini
Anzeige
nun auf der Arbeit...
24.07.2009 13:41:31
Tino
Hallo,
bin erst heute Abend wieder online.
Vielleicht eine Beispieldatei hochladen.
Gruß Tino
AW: nun auf der Arbeit...
24.07.2009 15:25:28
Luschi
Hallo Reinhardt,
hier eine kleine Änderung:

Set Dic = CreateObject("Scripting.Dictionary")
Arr = ActiveSheet.Range("D26:D" & ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row)
Dic("") = 0
For L = 1 To UBound(Arr)
If Not IsError(Arr(L, 1)) Then
Dic(Arr(L, 1)) = 0
End If
Next
Zur Erklärung:
ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row ergibt 125 und nicht 54, weil in der Spalte 'A'
die Einträge bis zu dieser Zeile gehen.
Arr = ActiveSheet.Range("D26:D" & ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row)
Durch diese Vba-Zeile werden die Zellen-Werte in das Array geschrieben. Alle leere Zellen erzeugen
als Array-Eintrag einen Fehlerwert, der mit der Funktion IsError() abgefangen werden muß.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: nun auf der Arbeit...
24.07.2009 16:39:18
Reinhardt
Hallo Luschi,
danke für den tip, habe es bei mir eingebaut..und es läuft.!! Danke !
Eine Sache noch: ich muss immer auf ein ein anderes sheet wechseln, und dann wieder zurück, damit er mir in der Dropdownbox auch die neuesten Filtermöglichkeiten zeigt.
Kann man dieses nicht automatisch aktualisieren (durch ein button) oder so?
Danke für die Hilfe nochmal!
Gruss
Reini
AW: nun auf der Arbeit...
24.07.2009 22:21:29
Tino
Hallo,
hier Deine Datei, die Gültigkeitsliste wird aktualisiert wenn Du was in der Spalte D änderst.
https://www.herber.de/bbs/user/63420.xls
Gruß Tino
Anzeige
AW: nun auf der Arbeit...
27.07.2009 20:53:30
Reinhardt
Hallo Tino und Luschi,
sorry für späte Rückmeldung. Ich denke das klappt jetzt bei mir.
Danke für das Helfen!! bis demnächst ;-)
Gruss
Reini
Nachtrag..Lauftzeitfehler 13?
24.07.2009 13:42:17
Reinhardt
Hallo,
wenn ich auf ein anderes xls sheet wechsle, und wieder zurück auf das sheet mit dem o.g. VBA wechsle,
sagt er mir Laufzeitfehler 13, Typen unverträglich an. Im VBA Editor markiert er die folgende Zeile gelb an:
If Arr(L, 1) "" Then
Wenn ich das bestätige, kann ich weitermachen...habe Ihr eine Idee zum lösen?
Danke !
Reini

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige