Automatisches Ausblenden über Makro
#11
Hallo zusammen,

ich habe das ausprobiert.
Richtig ist: Nachher wird nur noch dargestellt, was den Filterregeln entspricht.
Falsch ist: es ist kein Filter und es dauert ewig.

Beim Aufzeichnen habe ich festgestellt, dass er alle Einträge in Spalte 1 bei Criteria1 auflistet, und nichts aufzeichnet bei dem #NV

Frage:
könnte man das lösen, in dem man alle Einträge der Spalte 1 in eine Collection einliest und diese dann Criteria1 mit auf den Weg gibt?
Beim Einlesen in die Collection könnte man die Formel und leeren Zellen ausschließen.
Ergibt zwar viel mehr Code, wäre aber dann gefiltert und müsste auch viel schneller laufen. Oda?
[-] Folgende(r) 1 Nutzer sagt Danke an Wastl für diesen Beitrag:
  • Lars1904
Top
#12
Hallo Wastl,

mit Autofilter geht das natürlich auch:  :19:
Sub FehlerUndLeereAusblenden()
   Dim wksBlatt As Worksheet
   
   On Error Resume Next
   For Each wksBlatt In ThisWorkbook.Worksheets
     wksBlatt.Cells(1, 1).CurrentRegion.AutoFilter Field:=1, Criteria1:="<>#NV", _
                                            Operator:=xlAnd, Criteria2:="<>"
   Next wksBlatt
   On Error GoTo 0
End Sub
Gruß Uwe
[-] Folgende(r) 2 Nutzer sagen Danke an Kuwer für diesen Beitrag:
  • Wastl, Lars1904
Top
#13
Hi Uwe,

das geht ja noch viel fixer und is dennoch genial einfacher

Edit:
Nur bleiben bei mir nach dem Durchlaufen die #NV ob als Text geschrieben oder von Formel erzeugt dennoch sichtbar.
Wenn ich die gefilterte Spalte nochmal kontrolliere, was er da tut, filtert er dann erst wie gewünscht.
[-] Folgende(r) 1 Nutzer sagt Danke an Wastl für diesen Beitrag:
  • Lars1904
Top
#14
Hi Wastl,

ist wieder das Übersetzungsproblem wie bei Datum(sen) auch. Dann so:
Sub FehlerUndLeereAusblenden()
Dim wksBlatt As Worksheet

On Error Resume Next
For Each wksBlatt In ThisWorkbook.Worksheets
wksBlatt.Cells(1, 1).CurrentRegion.AutoFilter Field:=1, Criteria1:="<>#N/A", _
Operator:=xlAnd, Criteria2:="<>"
Next wksBlatt
On Error GoTo 0
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Lars1904
Top
#15
Hallo Uwe,

jetzt gehts, feini
der Benutzerdefinierte Filter zeigt nun das Criteria1 nicht an, aber das is ja ned so wichtig wenn Filter tut was Filter soll…
[-] Folgende(r) 1 Nutzer sagt Danke an Wastl für diesen Beitrag:
  • Lars1904
Top
#16
Vielen lieben Dank!

Ich habe dennoch noch eine kurze Rückfrage:

Wie müsste ich den Text abändern, damit in Spalte A und C nur noch die #NV-Fehler ausgeblendet werden sollen?

Danke!!!
Top
#17
Hallo Lars,
Sub FehlerUndLeereAusblenden()
Dim wksBlatt As Worksheet

On Error Resume Next
For Each wksBlatt In ThisWorkbook.Worksheets
wksBlatt.Cells(1, 1).CurrentRegion.AutoFilter Field:=1, Criteria1:="<>#N/A"
wksBlatt.Cells(1, 1).CurrentRegion.AutoFilter Field:=3, Criteria1:="<>#N/A"
Next wksBlatt
On Error GoTo 0
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Lars1904
Top
#18
Super!!! Das klappt genauso wie ich es mir vorgestellt habe! Vielen Dank!!!

Ein letztes Problem müsste ich allerdings noch lösen:

Wie muss das Makro lauten, wenn ich dazu noch die Zeilen mit leerem Zellenwert in der Spalte G nur im Zellbereich E10:K59 und nur im ersten Tabellenblatt (Tabellenblattname: "Protokoll") ausblenden möchte?

Perfekt wäre also das vorherige Makro ergänzt um den jetzigen Beitrag.

Danke! :)
Top
#19
Sorry,
da muss ich passen. Blush

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Lars1904
Top
#20
Ginge es denn in zweiten getrennten makros?
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste