Supportnet Computer
Planet of Tech

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

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

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

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

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

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

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

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

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

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