Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1148to1152
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?
Gegga
Hallo Nochmals
Folgender Code (mit hilfe hier aus dem Forum
Private Sub EINTRAGEN_VERSENDEN_Click()
'Filtern nach übermittelten, entschiedenen und zurückgesendeten Teilen
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Selection.AutoFilter Field:=1, Criteria1:="Entscheidung fehlt noch"
Range("B6:N100").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("KONTOAUSZUG").Select
Worksheets("KONTOAUSZUG").Range("B9").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
'Filtern nach NEUEN  Teilen
Sheets("Sperrbestände").Select
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Selection.AutoFilter Field:=2, Criteria1:=(">" & Trim(CDbl(Range("M3").Value)))
Selection.AutoFilter Field:=10, Criteria1:="="
Range("B6:N100").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("KONTOAUSZUG").Select
Dim LoLetzte_01 As Long
LoLetzte_01 = Worksheets("KONTOAUSZUG").Range("B65536").End(xlUp).Row + 1
Worksheets("KONTOAUSZUG").Cells(LoLetzte_01, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Sperrbestände").Select
'29.01.2010, NoNet - www.excelei.de (z.Zt. Offline)
Dim rngBereich As Range
If ActiveSheet.AutoFilterMode Then 'Nur wenn Autofilter aktiviert ist !
Set rngBereich = ActiveSheet.AutoFilter.Range
If Not rngBereich Is Nothing Then
On Error Resume Next    'Falls keine Daten angezeigt werden
Set rngBereich = rngBereich.Offset(1).EntireRow.Resize(rngBereich.Rows.Count - 1).  _
_
SpecialCells(xlCellTypeVisible)
If rngBereich.Rows.Count > 0 Then
Intersect(rngBereich, [J:J]).Value = Date   'Datum in Spalte J eintragen
End If
End If
End If
Set rngBereich = Nothing
End Sub
Funktioniert soweit alles ganz gut, nuuuur:
Sollte mal bei einem hier per VBA gesetzem Autofilter keine gefilterte Zeile vorhanden sein, bekomme ich ne Fehlermeldung
1004 Laufzeitfehler keine Zellen gefunden.
was muss ich tun , das die Sub trotzdem weiter abgearbeitet wird (beim ersten setzen des Autofilters, bzw. sollte der fehler beim zweiten setzen des Autofilters geschehen die Sub verlassen wird.
Kann mir hierbei jemand helfen?
Gruß

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehler abfangen?
07.04.2010 16:33:42
fcs
Hallo Gegga,
hier deine Prozedur mit einer ein Fehlerbehandlung. In der Prozedur wird vor jedem Hauptabschnitt jeweils der Wert einer Variablen gesetzt, um bei einem Fehler die entsprechende folgende Sprungadresse zur Fortsetzung anzusteuern.
Gruß
Franz
Private Sub EINTRAGEN_VERSENDEN_Click()
Dim iFehler As Long
On Error GoTo Fehler
'Filtern nach übermittelten, entschiedenen und zurückgesendeten Teilen
iFehler = 1
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Selection.AutoFilter Field:=1, Criteria1:="Entscheidung fehlt noch"
Range("B6:N100").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("KONTOAUSZUG").Select
Worksheets("KONTOAUSZUG").Range("B9").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=True, Transpose:=False
Filtern_2:
'Filtern nach NEUEN  Teilen
iFehler = 2
Sheets("Sperrbestände").Select
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Selection.AutoFilter Field:=2, Criteria1:=(">" & Trim(CDbl(Range("M3").Value)))
Selection.AutoFilter Field:=10, Criteria1:="="
Range("B6:N100").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("KONTOAUSZUG").Select
Dim LoLetzte_01 As Long
LoLetzte_01 = Worksheets("KONTOAUSZUG").Range("B65536").End(xlUp).Row + 1
Worksheets("KONTOAUSZUG").Cells(LoLetzte_01, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Filtern_3:
iFehler = 3
Sheets("Sperrbestände").Select
'29.01.2010, NoNet - www.excelei.de (z.Zt. Offline)
Dim rngBereich As Range
If ActiveSheet.AutoFilterMode Then 'Nur wenn Autofilter aktiviert ist !
Set rngBereich = ActiveSheet.AutoFilter.Range
If Not rngBereich Is Nothing Then
Set rngBereich = rngBereich.Offset(1).EntireRow.Resize(rngBereich.Rows.Count _
- 1).SpecialCells(xlCellTypeVisible)
If rngBereich.Rows.Count > 0 Then
Intersect(rngBereich, [J:J]).Value = Date   'Datum in Spalte J eintragen
End If
End If
End If
Err.Clear
Fehler:
With Err
Select Case .Number
Case 0 'Alles OK
Case 1004
Select Case iFehler
Case 1
Resume Filtern_2
Case 2
Resume Filtern_3
Case 3
'do nothing
Case Else
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
End Select
Case Else
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
End Select
End With
Set rngBereich = Nothing
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige