Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1024to1028
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
Autofilter per VBA - Leere anzeigen
22.11.2008 12:59:00
Wolfgang
Hallo,
wenn ich den Autofilter innerhalb eines Tabellenblattes eingeschaltet habe, kann ich ja zwischen dem Inhalt der jeweiligen Spalte und auch u.a. Leere bzw. Nichtleere filtern lassen. Gäbe es im untenstehenden Code eine Möglichkeit, diesen um Leere zu ergänzen? - Klicke ich nämlich innerhalb der Combobox einfach eine leere Zelle an, bekomme ich nicht nur Leere angezeigt. Danke schon jetzt für die Rückmeldungen.
Gruß - Wolfgang

Private Sub Gesamt()
' Variablendeklaration
Dim intCounter As Integer
Dim shSource As Worksheet
Dim lngRow As Long
Dim wb As Workbook
Dim sport As String
Dim fd As FileDialog
Dim vrtSelectedItem As Variant
'neue Tabelle für gefiltere Datensätze anlegen
' Objektvariable für aktives Blatt festlegen
Set shSource = Sheets("Gesamt")
' shSource.Unprotect
' Schleife über 16 TextBoxes
For intCounter = 1 To 16
'Wenn eine Auswahl erfolgte, dann
If Controls("cbbKriterium" & intCounter).ListIndex  -1 Then
'Kriterium festlegen
If intCounter = 3 Then
shSource.Range("A1").Autofilter Field:=intCounter, _
Criteria1:=CDate(Controls("cbbKriterium" & intCounter).Value)
Else
shSource.Range("A1").Autofilter Field:=intCounter, _
Criteria1:=Controls("cbbKriterium" & intCounter).Value
End If
End If
Next intCounter
' Alle sichtbaren Zellen kopieren
shSource.Range("A1").CurrentRegion.Copy
' Neues Arbeitsblatt hinzufügen
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Paste
' Autofilter ausschalten
shSource.Range("A1").Autofilter
' Kopiermodus ausschaltern
Application.CutCopyMode = False
' Zwischenspeicher einfügen
' Zelle A1 auswählen
Range("A1").Select
Unload Me
'shSource.Range("A1").Autofilter
'shSource.Protect
Set fd = Nothing
End Sub


2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter per VBA - Leere anzeigen
24.11.2008 13:45:00
fcs
Hallo Wolfgang,
am einfachsten wäre es, wenn du in die Auswahllisten für die Kriterium-Comboboxen zusätzlich die Eintrage (Alle), (Leere) und (NichtLeere) aufnehmen würdest.
Dann kannst deine Prozedur wie folgt anpassen, um diese "Sonderfilter" einzusetzen.

' Schleife über 16 TextBoxes
For intCounter = 1 To 16
'Wenn eine Auswahl erfolgte, dann
If Controls("cbbKriterium" & intCounter).ListIndex  -1 Then
'Kriterium festlegen
Select Case Controls("cbbKriterium" & intCounter).Value
Case "(Alle)"
shSource.Range("A1").AutoFilter Field:=intCounter '(Alle) anzeigen
Case "(Leere)", ""
shSource.Range("A1").AutoFilter Field:=intCounter, Criteria1:="=" '(Leere) filtern
Case "(NichtLeere)"
shSource.Range("A1").AutoFilter Field:=intCounter, Criteria1:="" '(Nichtleere)  _
filtern
Case Else
If intCounter = 3 Then
shSource.Range("A1").AutoFilter Field:=intCounter, _
Criteria1:=CDate(Controls("cbbKriterium" & intCounter).Value)
Else
shSource.Range("A1").AutoFilter Field:=intCounter, _
Criteria1:=Controls("cbbKriterium" & intCounter).Value
End If
End Select
End If
Next intCounter
' Alle sichtbaren Zellen kopieren


Gruß
Franz

Anzeige
Danke Franz - klappt super
24.11.2008 21:32:00
Wolfgang
Hallo Franz,
erneut recht herzlichen Dank für Deine Rückmeldung und Ausarbeitungen. Ich habe den Code soeben eingepflegt und angepasst. Der läuft super ! - nochmals Danke !
Herzliche Grüße
Wolfgang

33 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige