• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Na "OK", moet de macro stoppen, hoe doe ik dat?

  • Onderwerp starter Onderwerp starter Lauke
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Lauke

Gebruiker
Lid geworden
6 sep 2010
Berichten
58
Hallo, Excellers,

Ik zit met een probleempje en volgens mij kan het niet heel ingewikkeld zijn. Maar ik krijg het niet gevonden.
De code:

Code:
Sub SaveAsCelnaamPDF()
If Sheets("Opdrachtbon kleine leveringen").Range("F6") = "Niet vergeten in te vullen!!" Then
If MsgBox("Kies Afdeling!!", vbOKOnly, "Kies Afdeling") = vbOKOnly Then
    Cancel = True
    End If
If Sheets("Opdrachtbon kleine leveringen").Range("K6") = "" Then
        ActiveSheet.Unprotect Password:="Bonnen"
        Sheets("Gegevensblad").Visible = True
        Sheets("Gegevensblad").Select
        Range("B1").Select
        Selection.Copy
        Sheets("Opdrachtbon kleine leveringen").Select
        Range("K6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Sheets("Gegevensblad").Visible = False
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    With ActiveSheet
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "E:\TESTBonnr." & Format(.Range("K6").Value, "yymm.ddhh.mmss") & ".pdf", Quality:= _
            xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
    End With
End If
End If
End Sub

De bedoeling is dat er nadat er op OK geklikt wordt de macro stopt en niet verder gaat met opslaan, wat hij nu wel doet.

Wie wil me helpen?
Alvast dank!
 
Ipv van Cancel = True > Exit Sub
Op zich kon jouw optie ook wel, maar dan moet je de Cancel as Boolean declareren.

Misschien dat dit ook wat korter is (ongetest)
Code:
Sub Spaarie()
    If Sheets("opdrachtbon kleine leveringen").Range("F6") = "Niet vergeten in te vullen" Then
        MsgBox "U heeft geen afdeling gekozen!", vbOKOnly, "Let op"
        Exit Sub
    Else
        With Sheets("opdrachtbon kleine leveringen")
            If .Range("K6") = "" Then
            .Unprotect "Bonnen"
                With Sheets("gegevensblad")
                    .Visible = True
                    .Range("B1").Copy Sheets("opdrachtbon kleine leveringen").Range("K6")
                    .Visible = False
                End With
            .Protect "Bonnen"
            End If
            .ExportAsFixedFormat xlTypePDF, "E:\TESTBonnr." & Format(.Range("K6").Value, "yymm.ddhh.mmss") & ".pdf"
        End With
    End If
End Sub
 
Laatst bewerkt:
Code:
If MsgBox("Kies Afdeling!!", vbOKOnly, "Kies Afdeling") = vbOKOnly Then
    exit sub
    End If

Niels
 
Hallo Niels,

Dank voor je aanvulling.

Je miste iets..... volgens mij "Else".

Vervolgens liep ik vast als "K6" wel gevuld was. Die voorwaarde heb ik er dus maar uitgekieperd en wordt de inhoud van "K6" altijd pas gegenereerd bij opslaan.

Dit is het geworden:

Code:
Sub SaveAsCelnaamPDF()
If Sheets("Opdrachtbon kleine leveringen").Range("F6") = "Niet vergeten in te vullen!!" Then
If MsgBox("Kies Afdeling!!", vbOKOnly, "Kies Afdeling") = vbOKOnly Then
    Cancel = True
Exit Sub
    End If
Else
'If Sheets("Opdrachtbon kleine leveringen").Range("K6") = "" Then
        ActiveSheet.Unprotect Password:="Bonnen"
        Sheets("Gegevensblad").Visible = True
        Sheets("Gegevensblad").Select
        Range("B1").Select
        Selection.Copy
        Sheets("Opdrachtbon kleine leveringen").Select
        Range("K6").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Sheets("Gegevensblad").Visible = False
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    With ActiveSheet
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "E:\\TESTBonnr." & Format(.Range("K6").Value, "yymm.ddhh.mmss") & ".pdf", Quality:= _
            xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
    End With
'End If
End If
End Sub

Groet.
 
@ Spaarie..... :o:o:o

sorry, ik moet beter opletten!!!

Any way, thanx voor het meedenken. Je code is in ieder geval een stuk korter!

Groet,

Lauke
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan