Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1896to1900
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 richtig abfangen

Fehler richtig abfangen
29.08.2022 22:07:07
Heinz
Hallo Leute,
Ich möchte gerne wenn die Datei "meinElba_umsaetze_AT23392720000" nicht vorhanden ist das die Fehlermeldung kommt.
Es funktioniert nur teilweise.
Es kommt die Fehlermeldung ABER der Code läuft weiter.
Hätte jemand eine Lösung ?
Danke, Heinz

' Hier werden die Werte in das richtige Format gebracht.
Sub Währung_umrechnen()
On Error GoTo Fehler:
Application.DisplayAlerts = False
Sheets("meinElba_umsaetze_AT23392720000").Range("A1:D190").Copy ' Datum Mein Elba
Sheets("CSV").Unprotect
Sheets("CSV").Range("A1:D190").PasteSpecial Paste:=xlValues
Exit Sub
Fehler:
MsgBox "meinElba_umsaetze_AT23392720000 nicht vorhanden"
Application.DisplayAlerts = True
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler richtig abfangen
29.08.2022 22:17:14
ralf_b
möchtest du die Datei oder das Blatt auf Vorhandensein prüfen?
AW: Fehler richtig abfangen
29.08.2022 22:25:15
Daniel
Hi
Bitte auf die Richtigen Benennungen achten.
Was du meinst, ist keine Datei, sondern ein Tabellenblatt. Dateien oder auch Mappen genannt, enden auf .xlsx, xlsm oder xlsb.
Ansonsten besser so, ohne Fehlersprung und MIT sauberer Bedingungssrtuktur:
Wenn days Blatt vorhanden ist, mach dieses, wenn nicht mach was anderes.
On Error Goto Sprünge nimmt man, um Fehler, deren Ursache man nicht kennt abzufangen und das Programm ggf sauber mit Rückstellung aller verstellten Einstellungen zu verlassen.
Wenn man die Ursache aber so wie hier kennt (Blatt nicht vorhanden) , sollte man diese abprüfen, ohne Fehler zu erzeugen

Sub Währung_umrechnen()
Dim WS AS Worksheet
For each ws in ActiveWorkbook.Worksheets
If WS.Name = "meinElba_umsaetze_AT23392720000" then exit for
Next
If WS is Nothing then
MsgBox "meinElba_umsaetze_AT23392720000 nicht vorhanden"
Else
WS.Range("A1:D190").Copy ' Datum Mein Elba
Sheets("CSV").Unprotect
Sheets("CSV").Range("A1:D190").PasteSpecial Paste:=xlValues
End if
End Sub
Gruß Daniel
Anzeige
AW: Fehler richtig abfangen
29.08.2022 22:27:12
GerdL
Hallo Heinz,
probIer mal.

' Hier werden die Werte in das richtige Format gebracht.
Sub Währung_umrechnen()
Dim mySheet As Worksheet
Application.DisplayAlerts = False
On Error Resume Next
Set mySheet = Sheets("meinElba_umsaetze_AT23392720000")
On Error GoTo 0
If Not mySheet Is Nothing Then
mySheet.Range("A1:D190").Copy ' Datum Mein Elba
Sheets("CSV").Unprotect
Sheets("CSV").Range("A1:D190").PasteSpecial Paste:=xlValues
Else
MsgBox "meinElba_umsaetze_AT23392720000 nicht vorhanden!"
End If
Application.DisplayAlerts = True
End Sub
Gruß Gerd
Anzeige
Danke an ralf_b + Daniel + GerdL
29.08.2022 22:44:40
Heinz
Hallo ihr drei Burschen,
Super von Euch für die Problemlösungen und Erklärungen für mich.
Jetzt funktioniert es mit den beiden Codes.
Recht herzlichen Dank.
Jetzt kann ich schlafen gehen.
Wünsche euch eine gute Nacht
Heinz
AW: Fehler richtig abfangen
30.08.2022 09:59:37
Heinz
Guten morgen,
Ich bräuchte bitte nochmals eure Hilfe.
Spiele mich schon seit ca. 2 Stunden, mit den richtigen setzen, vom Fehler abfangen.
Beim unteren Makro kommt die MsgBox, wenn das TabBlat "meinElba_umsaetze_AT23392720000" nicht vorhanden ist.
Aber das Makro läuft leider durch.
Möchte sobald die MsgBox kommt, das das Makro abgebrochen wird.
Wäre von euch jemand bereit mir bitte nochmals zu helfen ?
Danke
Heinz

Sub Juni_einfuegen()
Dim mySheet As Worksheet
Sheets("Jun").Unprotect
Application.DisplayAlerts = False
On Error Resume Next
Set mySheet = Sheets("meinElba_umsaetze_AT23392720000")
On Error GoTo 0
If Not mySheet Is Nothing Then
Else
MsgBox "meinElba_umsaetze_AT23392720000 nicht vorhanden!"
End If
Worksheets("CSV").Range("A1:A190").Copy ' Datum
Sheets("Jun").Range("B10").PasteSpecial Paste:=xlValues
Worksheets("CSV").Range("B1:B190").Copy ' Buchungstext
Sheets("Jun").Range("C10").PasteSpecial Paste:=xlValues
Worksheets("CSV").Range("J1:J190").Copy ' Ausgaben
Sheets("Jun").Range("E10").PasteSpecial Paste:=xlValues
Worksheets("CSV").Range("I1:I190").Copy ' Einnahmen
Sheets("Jun").Range("F10").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False 'Zwischenspeicher löschen
Sheets("Jun").Protect
Sheets("Jun").Activate
Application.DisplayAlerts = True
End Sub

Anzeige
Du musst die...
30.08.2022 10:18:01
{Boris}
Hi,
...Antworten auch richtig umsetzen.

If Not mySheet Is Nothing Then
Else
MsgBox "meinElba_umsaetze_AT23392720000 nicht vorhanden!"
End If
ist nutzlos, wenn Du den Code im Else-Teil nicht abbrichst. Ohne Dir jetzt lange Erklärungen zu liefern, kannst Du es wie folgt machen:

If mySheet Is Nothing Then
MsgBox "meinElba_umsaetze_AT23392720000 nicht vorhanden!"
Exit Sub
End If
Ist aber kein guter Programmierstil - wie es geht, haben Dir Daniel und Gerd bereits gezeigt - setze es so um.
VG, Boris
Anzeige
AW: Du musst die...
30.08.2022 10:52:24
Heinz
Danke Boris,
Ich bin noch ziemlich schwach bezüglich Programmieren.
Aber Danke für deine Hilfe.
Habe jetzt Dank dir den gewünschten Erfolg,
Sg, Heinz
AW: Fehler richtig abfangen
30.08.2022 10:20:27
GerdL
Moin, da du offenbar nicht gewillt bist, die If-Then-Else-Bedingung umzustellen:
'..............
MsgBox "meinElba_umsaetze_AT23392720000 nicht vorhanden!"
Exit Sub
End If
'..................
Gruß Gerd
AW: Fehler richtig abfangen
30.08.2022 10:49:13
Heinz
Hallo Gerd,
  • Moin, da du offenbar nicht gewillt bist, die If-Then-Else-Bedingung umzustellen:

  • Dafür bin ich zu schwach in vba
    Aber deine Hilfe funktioniert wunderbar.
    Danke
    Sg, Heinz
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige