Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
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

Fehler abfangen

Fehler abfangen
04.12.2012 17:44:31
Ben
Hi
Ich hab folgenden einfachen Filter, den man über eine Schaltfläche setzen kann:
Private Sub Filter_Codiert_Click()
' N_CO Makro
ActiveSheet.Range("$A$5:$AP$25").AutoFilter Field:=42, Criteria1:="0"
ActiveWindow.SmallScroll ToRight:=-3
Range("AF1").Select
End Sub
'
Je nach Konstellation krieg ich die Fehlermeldung "keine Zellen gefunden". Wie muss ich den Code anpassen, damit diese abgefangen wird und die Meldung nicht erscheint?
Gruss
Ben

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler abfangen
04.12.2012 19:22:01
Hajo_Zi
Hallo Ben,
lösche diese Zeilen.
ActiveWindow.SmallScroll ToRight:=-3
Range("AF1").Select

AW: Fehler abfangen
05.12.2012 09:01:52
Ben
Hi
Hab die beiden Zeilen gelöscht. Macht keinen Unterschied; Fehlermeldung kommt immer noch.
Gruss
Ben

AW: Fehler abfangen
05.12.2012 15:12:19
Hajo_Zi
Hallo Ben,
nur wenige sehen die Datei und sehen was Du machst.
Gruß Hajo

AW: Fehler abfangen
05.12.2012 09:23:10
Klaus
Hallo Ben,
die Meldung verhindern kannst du mit einem "On Error Resume Next" am Anfang des Makros. Aber vielleicht währs besser, einfach den Fehler zu beheben?
Fangen wir mal an:
ActiveSheet.Range("$A$5:$AP$25").AutoFilter Field:=42, Criteria1:="0"
ActiveSheet. wenn das Makro ausgeführt wird, bist du dann auf dem richtigen Blatt? Oder woanders?
Range("$A$5:$AP$25"). Der Bereich A5:AP25 des richtigen Blattes ist da, nicht geschützt, enthält keine Fehler wie #DIV0 oder #NV ?
.AutoFilter Über den Bereich ist auch sicher ein Autofilter gesetzt?
Field:=42, du willst sicher im 42ten Bereich filtern?
Criteria1:="0" das dürfte eigentlich keinen Fehler machen.
Meine Vermutung ins blaue: Du hast das Makro aufgezeichnet, als der Autofilter über den Bereich A:AP lag. Danach hast du festgestellt, dass dir eigentlich ein Filter im Bereich AA:AP reicht und den Autofilter neu gesetzt. Jetzt gibt es kein "Field 42" mehr und der Filter stürtzt ab.
Die beiden von Hajo monierten Zeilen kannst du trotzdem löschen, die sind nur Ballast.
Grüße,
Klaus M.vdT.

Anzeige
AW: Fehler abfangen
05.12.2012 09:51:58
Ben
Hallo
Es geht um folgendes. Ich habe 6 Arbeitsblätter mit Abfragen (Queries) von verschiedenen Bereichen. Sie sind aber identisch aufgebaut und haben je eine Schaltfläche für "Alle Datensätze anzeigen" und "Filter auf Wert 0".
In einem 7. Arbeitsblatt wird der Zeitbereich für die Abfragen eingegeben. Je nachdem wie lange dieser ist, erscheinen auf den Arbeitsblättern 1 - 6 mehr oder weniger Datensätze.
Den Code für den Filter habe ich mit dem Makrorekorder aufgenommen. Die Spalte AP stimmt und war von Beginn weg richtig. Ich habe jetzt aber den Bereich erweitert auf 5000 Zeilen. Die Fehlermeldung "keine Zeilen gefunden" erscheint, wenn auf den Arbeitsblättern 1 - 6 der Filter bereits gesetzt ist. Da aber i.d.R. nur die Einträge interessieren, welche den Wert 0 haben, möchte ich das auch so belassen.
Also mein Code ist jetzt für "Datensätze filtern"
Private Sub Filter_Codiert_Click()
' N_CO Makro
On Error Resume Next
ActiveSheet.Range("$A$5:$AP$5000").AutoFilter Field:=42, Criteria1:="0"
End Sub
Und für "alle Datensätze anzeigen"
Private Sub CommandButton2_Click()
' Alle Makro
On Error Resume Next
ActiveSheet.Range("$A$5:$AP$5000").AutoFilter Field:=42
End Sub

On Error Resume Next hat keine Verbesserung gebracht.
Man könnte das Ganze ja einfach mit Standard-Excel-Bordmitteln machen. Ich möchte es aber den Usern, die z.T. Excel nicht wirklich kennen, möglichst einfach machen.
Gruss
Ben

Anzeige
AW: Fehler abfangen
05.12.2012 11:25:31
Klaus
auf den Arbeitsblättern 1 - 6 der Filter bereits gesetzt
Hi,
dann mach es doch etwas professioneller: Wenn der Button "Filter setzen" geclickt wird,
1) entferne jeglichen Autofilter vom Blatt
2) setzte einen Autofilter über den Bereich A5:AP5000
3) filtere hinten nach "0"
Grund: Der User könnte irgendwo nach irgendwas filtern, oder noch schlimmer: Den Autofilter versetzt haben. All das könnte Fehlermeldungen verursachen
Das Makro dazu sähe dann so aus:

Private Sub Filter_Codiert_Click()
' N_CO Makro
on error goto hell
With activesheet
If .AutoFilterMode Then .Cells.AutoFilter                     'Autofilter AUS
.Range("A5:AP5000").AutoFilter                                'Autofilter AN
.Range("$A$5:$AP$5000").AutoFilter Field:=42, Criteria1:="0"  'Filtern
End With
goto heaven
hell:
msgbox ("Fehler!")
heaven:
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: Fehler abfangen
05.12.2012 15:23:23
Ben
Hi
Danke für Eure Vorschläge. Leider hab ichs damit nicht geschafft, die Fehlermeldung "Keine Zellen gefunden" zu eliminieren, wenn die Filter in den Arbeitsblättern während der Aktualisierung der Daten gesetzt sind.
Ich habe deshalb eine andere, pragmatische Lösung gewählt. Ich setze den Filter für die Arbeitsblätter 1 - 6 mittels Schaltfläche auf dem 7. Arbeitsblatt; dort wo der Zeitbereich für die Abfragen eingegeben wird. Die User müssen jetzt bevor sie einen neuen Zeitbereich abfragen den Filter auf "Alles anzeigen" setzen, dann kommt keine Fehlermeldung.
Ist nicht die Ideallösung ich weiss. Mangels Zeit aber im Moment die Beste.
Danke nochmals.
Gruss
Ben
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige