Makro endet unerwartet

Betrifft: Makro endet unerwartet
von: Pascal
Geschrieben am: 11.09.2020 13:26:31
Guten Tag,
ich sitze gerade an einem Makro zum PDF-Report erstellen.
An einer Stelle (nach einem Counter) endet einfach die Abfolge der Einzelschritte.
Nach Range("g8").Value = Range("g8").Value + 1 endet es ohne Fehlermeldung. Im Einzelschritt kann ich es auch nicht ausführen lassen.
Weiß jemand, woran das liegt?
Vielen Dank für die Hilfe vorab.
LG, Pascal
Hier der Code:
Sub Kunden_PDF_Erzeugen()
If Range("g8").Value >= Range("i8").Value Or Range("m8").Value > Range("k8") Then
MsgBox "Text1" & vbCrLf & "Text2."
Else:
'
' Kunden_PDF_Erzeugen Makro
'
'
Worksheets("XY").Visible = True
Sheets("XV").Select
ActiveSheet.Unprotect Password:=Worksheets("ZZ").Range("n4").Value
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).MinimumScale = Range("$p$7").Value
ActiveChart.Axes(xlValue).MaximumScale = Range("$q$7").Value
ActiveSheet.ChartObjects("Diagramm 6").Activate
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).MinimumScale = Range("$p$15").Value
ActiveChart.Axes(xlValue).MaximumScale = Range("$q$15").Value
Range("F1:K62").Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Worksheets("ZZ").Range("f31").Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
ActiveSheet.Protect Password:=Worksheets("ZZ").Range("n4").Value
Worksheets("XY").Visible = False
Sheets("ZZ").Select
ActiveSheet.Unprotect Password:=Range("N4").Value
Range("g8").Value = Range("g8").Value + 1
ActiveSheet.Protect Password:=Range("N4").Value
MsgBox "Text3" & vbCrLf & "Text4"
End If
End Sub

Betrifft: Crossposting
von: UweD
Geschrieben am: 11.09.2020 13:27:44
https://www.vba-forum.de/View.aspx?ziel=61694-Makro_endet_unerwartet

Betrifft: AW: Makro endet unerwartet
von: max.kaffl@gmx.de
Geschrieben am: 11.09.2020 14:18:51
Hallo Pascal,
teste mal:
Option Explicit
Public Sub Kunden_PDF_Erzeugen()
'
' Kunden_PDF_Erzeugen Makro
'
If Range("G8").Value < Range("I8").Value Or Range("M8").Value <= Range("K8").Value Then
With Worksheets("XV")
.Unprotect Password:=Worksheets("ZZ").Range("N4").Value
With .ChartObjects("Diagramm 1").Chart.Axes(xlValue)
.MinimumScale = .Range("P7").Value
.MaximumScale = .Range("Q7").Value
End With
With .ChartObjects("Diagramm 6").Chart.Axes(xlValue)
.MinimumScale = .Range("P15").Value
.MaximumScale = .Range("Q15").Value
End With
.Range("F1:K62").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Worksheets("ZZ").Range("F31").Value, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
.Protect Password:=Worksheets("ZZ").Range("N4").Value
End With
End If
ActiveSheet.Unprotect Password:=Range("N4").Value, UserInterfaceOnly:=True
Range("G8").Value = Range("G8").Value + 1
MsgBox "Fertig"
End Sub
Gruß
Nepumuk

Betrifft: AW: @Max
von: GerdL
Geschrieben am: 11.09.2020 14:30:14
Hallo Max,
am Ende sollte es doch "Protect" statt "Unprotect" heißen?
Gruß Gerd

Betrifft: AW: @Max
von: Nepumuk
Geschrieben am: 11.09.2020 14:47:40
Hallo Gerd,
da hast du Recht.
@Pascal bitte korrigieren.
Gruß
Nepumuk

Betrifft: AW: @Max
von: Pascal
Geschrieben am: 11.09.2020 19:59:37
Hallo Nepumuk,
vielen Dank erst einmal für die Hilfe. Gleich vorweg: ich habe deinen Lösungsvorschlag als Grundlage genommen, meinen Code umzuschreiben. Bei deinem Vorschlag invertierst du die IF-Bedingung am Anfang. So hatte ich es auch zu Beginn, der Fehler trat erst auf, nachdem ich das gedreht habe.
Einmal rückgängig gemacht und es läuft wieder. Die Frage, warum der Code an der Stelle abgebrochen hat, bleibt mir allerdings.
Gruß Pascal

Betrifft: AW: @Max
von: Nepumuk
Geschrieben am: 11.09.2020 20:11:18
Hallo Pascal,
ehrlich gesagt, ich habe auch keine Ahnung. Ich habe das Ganze nur "sauber" programmiert. Das hilft meistens.
Gruß
Nepumuk