Supportnet / Forum / Tabellenkalkulation
Fehler Autofilter mit Leerzeichen + VBA
Frage
Hallo Community,
der in einem Makro enthaltene Autofilter funktioniert nicht richtig. Das Makro sieht wie folgt aus:
Sub ZelleErhöhen_Datenfilter()
Range("C24:F48").Select
Selection.AutoFilter
Selection.AutoFilter Field:=2, Criteria1:="<>"
Cells(1, 1).Value = Cells(1, 1).Value + 1
End Sub
Es sollen alle Zellen die in der Spalte D im angegebenen Bereich keinen Wert enthalten oder leer sind ausgeblendet werden. Das Problem scheint hierbei schon an den Leerzellen zu liegen, daher hab ich das Makro als Beispiel nur mit dem einen Kriterium eingefügt. (zur Info: Anschliessend wird das Feld A1 um 1 erhöht, damit ein weiterer Datensatz angezeigt wird - das möchte ich auch noch gern automatisieren, weiss aber auch noch nicht, wie). Gibt es noch eine andere Möglichkeit diese leeren Zeilen per Makro auszublenden, bzw. vielleicht kann mir jemand erklären, was an dem oberen Makro falsch sein kann.
Freue mich über jede Antwort
Viele Grüße
martl
Antwort 1 von Guenter
Hallo,
hast Du die Autofilter-Aktion schon mal mit Makro-Aufzeichnung durchgeführt?
Geht das auch nicht?
Gruß
Günter
hast Du die Autofilter-Aktion schon mal mit Makro-Aufzeichnung durchgeführt?
Geht das auch nicht?
Gruß
Günter
Antwort 2 von Aliba
Hi Martl,
also bei mir funzt das Makro. Scheint wohl eher ein Problem deiner Zellinhalte zu sein.
Wahrscheinlich sind diese Zellen nur optisch leer.
Wie wird denn das Makro ausgeführt?
Über eine Befehlsschaltfläche oder über einen Button in der Symbolleiste?
CU Aliba
also bei mir funzt das Makro. Scheint wohl eher ein Problem deiner Zellinhalte zu sein.
Wahrscheinlich sind diese Zellen nur optisch leer.
Wie wird denn das Makro ausgeführt?
Über eine Befehlsschaltfläche oder über einen Button in der Symbolleiste?
CU Aliba
Antwort 3 von martl
Hallo,
vielen Dank für Eure schnelle Antwort.
@günter
Das Makro hab ich über den Makrorekorder aufgezeichnet und um die letzte Zeile von Hand ergänzt. Es funktioniert, leider noch nicht richtig.
@Aliba
Stimmt. Die Zelle enthält einen Sverweis, ist also nur optisch leer. Eine geänderte Abfrage im Filter (zusätlich noch nach "0"-Werten) hatte auch keinen Erfolg. Jetzt hab ich versuchshalber von den entsprechenden Zellen (Abfrage SVERWEIS)im Datenblatt den Inhalt gelöscht, das Problem besteht jedoch weiterhin.
Seltsamerweise funktioniert der Filter, sobald dieser nochmals durch Click auf den Autofilter und Bestätigen des Selektionskriteriums "Nicht Leere" "nachaktiviert" wird. *grübel*
Viele Grüße und schönen Nachmittag an Euch
martl
vielen Dank für Eure schnelle Antwort.
@günter
Das Makro hab ich über den Makrorekorder aufgezeichnet und um die letzte Zeile von Hand ergänzt. Es funktioniert, leider noch nicht richtig.
@Aliba
Stimmt. Die Zelle enthält einen Sverweis, ist also nur optisch leer. Eine geänderte Abfrage im Filter (zusätlich noch nach "0"-Werten) hatte auch keinen Erfolg. Jetzt hab ich versuchshalber von den entsprechenden Zellen (Abfrage SVERWEIS)im Datenblatt den Inhalt gelöscht, das Problem besteht jedoch weiterhin.
Seltsamerweise funktioniert der Filter, sobald dieser nochmals durch Click auf den Autofilter und Bestätigen des Selektionskriteriums "Nicht Leere" "nachaktiviert" wird. *grübel*
Viele Grüße und schönen Nachmittag an Euch
martl
Antwort 4 von martl
Hallo Aliba,
das Makro hab ich über ein "Schaltfächenbild" auf meinem Excelblatt gestartet. Hab gerade auch nochmals das Makro über die Symbolleiste ausgeführt, jedoch ohne Änderung.
Viele Grüße
martl
das Makro hab ich über ein "Schaltfächenbild" auf meinem Excelblatt gestartet. Hab gerade auch nochmals das Makro über die Symbolleiste ausgeführt, jedoch ohne Änderung.
Viele Grüße
martl
Antwort 5 von Aliba
Hi Martl,
also so werden wir wohl nur im Trüben fischen. Kannst mir gerne mal die Datei schicken, dann schau ich mal drüber.
CU Aliba
also so werden wir wohl nur im Trüben fischen. Kannst mir gerne mal die Datei schicken, dann schau ich mal drüber.
CU Aliba
Antwort 6 von nighty
hi alle
hier ein makro das selbiges erledigt
es wird in spalte d nach leerzelle oder nullwert gesucht und die zeile ausgeblendet.
auf beliebig grosse tabellen bezogen von a-z und zeilen eben bis ende.
gruss nighty
Sub Makro1()
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
alta = LastCell.Row
A = LastCell.Row
Do While Application.CountA(Rows(A)) = 0 And A <> 1
A = A - 1
Loop
alta = A
altb = LastCell.Column
b = LastCell.Column
Do While Application.CountA(Columns(b)) = 0 And b <> 1
b = b - 1
Loop
altb = b
lzeile = alta
lspalte = altb
For t1% = 1 To lzeile
If Range("d" & t1%) = 0 Or Range("d" & t1%) = "" Then
Range("d" & t1% & ":" & "d" & t1%).Select
Selection.EntireRow.Hidden = True
End If
Next t1%
End Sub
hier ein makro das selbiges erledigt
es wird in spalte d nach leerzelle oder nullwert gesucht und die zeile ausgeblendet.
auf beliebig grosse tabellen bezogen von a-z und zeilen eben bis ende.
gruss nighty
Sub Makro1()
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
alta = LastCell.Row
A = LastCell.Row
Do While Application.CountA(Rows(A)) = 0 And A <> 1
A = A - 1
Loop
alta = A
altb = LastCell.Column
b = LastCell.Column
Do While Application.CountA(Columns(b)) = 0 And b <> 1
b = b - 1
Loop
altb = b
lzeile = alta
lspalte = altb
For t1% = 1 To lzeile
If Range("d" & t1%) = 0 Or Range("d" & t1%) = "" Then
Range("d" & t1% & ":" & "d" & t1%).Select
Selection.EntireRow.Hidden = True
End If
Next t1%
End Sub
Antwort 7 von martl
Hallo,
bitte zu entschuldigen, dass ich mich erst jetzt wieder melde, konnte die letzten Tage nicht auf meine Daten zugreifen.
@Aliba
Vielen Dank für Dein Angebot, werde vielleicht noch später daraufzurückkommen. Jedoch muss ich hierzu erst mal meine Tabelle (wegen dem lieben Datenschutz) etwas umbauen, und das kann noch dauern. Melde mich aber wieder.
@nighty
ebenfalls vielen Dank für die Bereitstellung des Makros. Leider bin ich immer noch nicht in der Lage das Makro so umzustellen, dass dieser "Filter" nur in einem bestimmten Bereich
funktioniert, z.B. im Bereich von D24:D25, in dieser Spalte soll überprüft werden, ob eine Zelle "optisch" leer ist.
Vielleicht kann mir hier noch jemand beim Umstellen des Makros weiterhelfen ?!
Viele Grüße an alle SNler und
schönen Abend noch
martl
bitte zu entschuldigen, dass ich mich erst jetzt wieder melde, konnte die letzten Tage nicht auf meine Daten zugreifen.
@Aliba
Vielen Dank für Dein Angebot, werde vielleicht noch später daraufzurückkommen. Jedoch muss ich hierzu erst mal meine Tabelle (wegen dem lieben Datenschutz) etwas umbauen, und das kann noch dauern. Melde mich aber wieder.
@nighty
ebenfalls vielen Dank für die Bereitstellung des Makros. Leider bin ich immer noch nicht in der Lage das Makro so umzustellen, dass dieser "Filter" nur in einem bestimmten Bereich
funktioniert, z.B. im Bereich von D24:D25, in dieser Spalte soll überprüft werden, ob eine Zelle "optisch" leer ist.
Vielleicht kann mir hier noch jemand beim Umstellen des Makros weiterhelfen ?!
Viele Grüße an alle SNler und
schönen Abend noch
martl
Antwort 8 von nighty
hi :)
das obige makro ermittelte automatisch das ende,doch kannst du es auch leicht begrenzen,vielleicht so !
Sub Makro1()
rem die 1 ist der anfang der zeilen abtastung
rem 100 das ende den wuenschen anzupassen
For t1% = 1 To 100
rem in dieser zeile ist 2 mal spalte d vorgegeben
If Range("d" & t1%) = 0 Or Range("d" & t1%) = "" Then
rem hier auch zweimal spalte d,den wuenschen anzupassen
Range("d" & t1% & ":" & "d" & t1%).Select
Selection.EntireRow.Hidden = True
End If
Next t1%
End Sub
das obige makro ermittelte automatisch das ende,doch kannst du es auch leicht begrenzen,vielleicht so !
Sub Makro1()
rem die 1 ist der anfang der zeilen abtastung
rem 100 das ende den wuenschen anzupassen
For t1% = 1 To 100
rem in dieser zeile ist 2 mal spalte d vorgegeben
If Range("d" & t1%) = 0 Or Range("d" & t1%) = "" Then
rem hier auch zweimal spalte d,den wuenschen anzupassen
Range("d" & t1% & ":" & "d" & t1%).Select
Selection.EntireRow.Hidden = True
End If
Next t1%
End Sub
Antwort 9 von martl
Hallo nighty,
bin restlos begeistert, werde ich morgen früh gleich ausprobieren. Da ging ja sowas von schnell, ...
Einen wunderschönen Abend noch und vielen Dank
Grüßle
martl
bin restlos begeistert, werde ich morgen früh gleich ausprobieren. Da ging ja sowas von schnell, ...
Einen wunderschönen Abend noch und vielen Dank
Grüßle
martl
Antwort 10 von martl
Hallo,
vielen Dank nochmals an Alle für die tatkräftige Unterstützung bei der Beantwortung meiner Anfrage.
Ein besonderes Dankeschön nochmals auf diesem Weg an nighty. Das Makro funktioniert hervorragend.
Schönen Abend noch
Gruß
martl
vielen Dank nochmals an Alle für die tatkräftige Unterstützung bei der Beantwortung meiner Anfrage.
Ein besonderes Dankeschön nochmals auf diesem Weg an nighty. Das Makro funktioniert hervorragend.
Schönen Abend noch
Gruß
martl