Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

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