On error klappt nur beim ersten Mal

Bild

Betrifft: On error klappt nur beim ersten Mal von: R.schmitt
Geschrieben am: 23.02.2005 13:27:02

Anbei ein kurzer Programmcode.
Befindet sich im das Blatt Bilder das gesuchte
Bild nicht, soll stattdessen das Bild mit dem
Namen "KeinBild" eingefügt werden. Das klappt
auch über den on error goto ... beim ersten mal.
Nur erkennt mein Makro beim zweiten Mal den Fehler
nicht und ich erhalte trotzdem einen Laufzeitfehler.
Muß ich den Fehlerwert dann bei "keinbildf" wieder
auf Null setzen ? Oder habe ich mal wieder einen
Knoten im Hirn ??

Herzlichen Dank
R . Schmitt


Sub Einfügenf()
'Application.ScreenUpdating = False
'On Error Resume Next
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
If sh.Name <> "ComboBox1" And sh.Name <> "Combobox2" Then
sh.Delete
End If
Next sh
i = 0
zurückf:
Do Until Range("f8").Offset(i, 0).Value = "''"
    Sheets("Auswertung").Select
    Range("f8").Offset(i, 0).Activate
    bild = ActiveCell.Value
On Error GoTo keinbildf
    Sheets("BILDER").Select
    ActiveSheet.Shapes(bild).Select
    Selection.Copy
    Sheets("AUSWERTUNG").Select
    Range("f8").Offset(i, 0).Select
    ActiveSheet.Paste
    Selection.ShapeRange.LockAspectRatio = msoFalse
    Selection.ShapeRange.Height = 173.25
    Selection.ShapeRange.Width = 147#
    Selection.Top = ActiveCell.Top
    Selection.Left = ActiveCell.Left
    i = i + 9
Loop
Range("b7").Select
GoTo ende
keinbildf:
Sheets("BILDER").Select
ActiveSheet.Shapes("KeinBild").Select
Selection.Copy
Sheets("AUSWERTUNG").Select
    Range("f8").Offset(i, 0).Select
    ActiveSheet.Paste
    Selection.ShapeRange.LockAspectRatio = msoFalse
    Selection.ShapeRange.Height = 173.25
    Selection.ShapeRange.Width = 147#
    Selection.Top = ActiveCell.Top
    Selection.Left = ActiveCell.Left
    Selection.Name = ActiveCell.Value
    i = i + 9
GoTo zurückf
ende:
End Sub

Bild


Betrifft: AW: On error klappt nur beim ersten Mal von: Cardexperte
Geschrieben am: 23.02.2005 13:57:26

Hello R.Schmidt, habe es nicht getestet, aber du musst den Fehler wieder zurückstellen, damit beim nächsten mal erneut zur Fehlerbehandlung oder Nichtbehandlung verzweigt wird, muss man ausprobieren, wo folgender Code rein muss, damit alles klappt:
If Err.Number <> 0 Then Err.Clear
Gruss WS


Bild


Betrifft: Klappt leider nicht von: R.Schmitt
Geschrieben am: 23.02.2005 14:22:52

Lieber Cardexperte,

habe jetzt verzweifelt versucht,die Err.clear
wo auch immer einzubauen. Er checkt den Fehler
beim zweiten Mal immer noch nicht.

Aaarghhh ...............

R.Schmitt


Bild


Betrifft: AW: Klappt leider nicht von: Cardexperte
Geschrieben am: 23.02.2005 14:43:58

Hello R.Schmidt,
komisch!, dann versuch mal folgendes:
dort wo du den Error abfängts schreib mal
on error resume next
darunter
if err.number<>0 then goto deine Sprungadresse und dort wo du hinspringst als 1. gleich den error wieder auf 0 setzen.
Falls das auch nicht geht, dann spring mal nicht innerhalb des Moduls sondern rufe eine neue Routine auf, sonst musst du mal dein Beispiel hier reinstellen, damit man das nachvollziehen kann, dieses Springen hin und her.
Gruss WS
Ach noch was, lass dir doch mal beim Debugger als Überwachung die err.number anzeigen und schau dir das alles im Einzelschrittmodus an.


Bild


Betrifft: AW: Klappt leider nicht von: EtoPHG
Geschrieben am: 23.02.2005 14:46:04

Hallo R,

Siehe ein paar Threads weiter unten, gleiches Thema und Lösung

https://www.herber.de/forum/messages/573649.html

Gruss Hansueli


Bild


Betrifft: AW: Klappt leider nicht von: Lag bei mir etwas anders....
Geschrieben am: 23.02.2005 14:53:31

Gelöst habe ich es nicht mit Option Explicit,
wie in dem von dir geposteten Thread vorge-
schlagen sondern indem ich goto zurückf durch
resume zurückf ersetzt habe.

Denoch vielen Dank und einen Schönen Tag
R.Schmitt


 Bild

Beiträge aus den Excel-Beispielen zum Thema "On error klappt nur beim ersten Mal"