Macro werk...maar knop naar macro niet?

Status
Niet open voor verdere reacties.

MarkBrink89

Gebruiker
Lid geworden
28 nov 2015
Berichten
36
Beste Forumisten,

Ik ben bezig met het maken van een programmaatje in excel met VBA. Nu heb ik een Macro aangemaakt die de juist protocollen print en deze werk zeer goed...

Nu alleen het probleem. Als ik de macro activeer via de UI Ontwikkelaar->Macro of in VBA de test knop, dan gaat dit goed alles werkt zoals ik wil werken. Maar dan
zodra ik de macro koppel aan een knop in mijn excel bestand werkt hij soms wel, soms een beetje en soms geeft hij een 400 error....

Onderhand heb ik geen haren meer op mijn hoofd, ik begrijp niet wat ik fout doe. De script werkt, maar niet als ik dus op een knop druk argh!

Kennen jullie dit probleem of kunnen jullie mij erbij helpen dan hoor ik graag jullie ideeën....Ik snap er niks meer van :(

Hieronder post ik nog even de code die aangeroepen wordt en op welke manier hij wordt aangeroepen. Maar let wel de script werkt prima...

Code:
Sub Protocol_print(Optional PrPr As String)


Dim rng As Range, cell As Range
 'switch of updating to speed your code & stop irritating flickering
Application.ScreenUpdating = False
Application.Cursor = xlWait
Application.DisplayStatusBar = True
Application.StatusBar = "Protocollen wordt klaargemaakt..."


Worksheets("PROTOCOL N2").Unprotect Password:="secret"
Worksheets("PROTOCOL N3").Unprotect Password:="secret"




If PrPr = "Ma" Then
Set rng = Range("C5:C12")


ElseIf PrPr = "Di" Then
Set rng = Range("C17:C24")


ElseIf PrPr = "Wo" Then
Set rng = Range("C29:C36")


ElseIf PrPr = "Do" Then
Set rng = Range("C41:C48")


ElseIf PrPr = "Vr" Then
Set rng = Range("C53:C60")
End If


For Each cell In rng


If cell.Value = "" Then
Exit For


End If


opleiding = Application.WorksheetFunction.VLookup(cell.Value, Blad2.Range("A3:H147"), 4, False)


If opleiding = "ZWBA" Or opleiding = "ZWBR" Or opleiding = "ZWBB" Then
Worksheets("PROTOCOL N3").Select
Range("ProtoN3_Naam").Value = cell.Value
Range("ProtoN3_OV").Value = Application.WorksheetFunction.VLookup(cell.Value, Blad2.Range("A3:H147"), 2, False)


If opleiding = "ZWBA" Then
Range("ProtoN3_BA").Value = "X"


ElseIf opleiding = "ZWBR" Then
Range("ProtoN3_BR").Value = "X"


ElseIf opleiding = "ZWBB" Then
Range("ProtoN3_BB").Value = "X"


End If


ElseIf opleiding = "UBB" Or opleiding = "UBR" Or opleiding = "UBA" Then
Worksheets("PROTOCOL N2").Select
Range("ProtoN2_Naam").Value = cell.Value
Range("ProtoN2_OV").Value = Application.WorksheetFunction.VLookup(cell.Value, Blad2.Range("A3:H147"), 2, False)


If opleiding = "UBA" Then
Range("ProtoN2_BA").Value = "X"


ElseIf opleiding = "UBR" Then
Range("ProtoN2_BR").Value = "X"


ElseIf opleiding = "UBB" Then
Range("ProtoN2_BB").Value = "X"


End If


End If


  'Printen
        Range("A1:D35").Select
        ActiveSheet.PageSetup.PrintArea = ""
        With ActiveSheet.PageSetup
          .LeftMargin = Application.InchesToPoints(0.6)
          .RightMargin = Application.InchesToPoints(0.4)
          .TopMargin = Application.InchesToPoints(0.75)
          .BottomMargin = Application.InchesToPoints(0.75)
          .HeaderMargin = Application.InchesToPoints(0.3)
          .FooterMargin = Application.InchesToPoints(0.3)
          .PrintHeadings = False
          .PrintGridlines = False
          .PrintComments = xlPrintNoComments
          .PrintQuality = 600
          .CenterHorizontally = False
          .CenterVertically = False
          .Orientation = xlPortrait
          .Draft = False
          .PaperSize = xlPaperA4
          .FirstPageNumber = xlAutomatic
          .Order = xlDownThenOver
          .BlackAndWhite = False
          .Zoom = 85
          .PrintErrors = xlPrintErrorsDisplayed
          .OddAndEvenPagesHeaderFooter = False
          .DifferentFirstPageHeaderFooter = False
          .ScaleWithDocHeaderFooter = True
          .AlignMarginsHeaderFooter = True
            .FitToPagesWide = 1
            .FitToPagesTall = 1
     
        End With
        Selection.PrintOut Copies:=1, Collate:=True
        
Range("ProtoN2_BA, ProtoN2_BR, ProtoN2_BB").Value = ""
Range("ProtoN3_BA, ProtoN3_BR, ProtoN3_BB").Value = ""


Next cell








  
    Application.Cursor = xlDefault
    Application.StatusBar = False
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
   
   Worksheets("Planning - Praktijk").Activate
   


        
   
   Worksheets("PROTOCOL N2").Protect Password:="secret"
    Worksheets("PROTOCOL N3").Protect Password:="secret"
   
   MsgBox "Protocollen afgedrukt!"
    
  


End Sub

Call function

Code:
Sub Protocol_maandag()
Dim PrPr As String


PrPr = "Ma"
Protocol_print (PrPr)
     
End Sub


Sub Protocol_dinsdag()
Dim PrPr As String


PrPr = "Di"
Protocol_print (PrPr)
     
End Sub


Sub Protocol_woensdag()
Dim PrPr As String


PrPr = "Wo"
Protocol_print (PrPr)
     
End Sub


Sub Protocol_donderdag()
Dim PrPr As String


PrPr = "Do"
Protocol_print (PrPr)
     
End Sub


Sub Protocol_vrijdag()
Dim PrPr As String


PrPr = "Vr"
Protocol_print (PrPr)
     
End Sub


Hoop dat jullie mij kunnen helpen,

Groetjes Mark
 
Plaats je document.
Daarnaast is Visual Basic .Net iets heel anders dan VBA.
 
Zojuist opgelost, het probleem was dat ik bij de range niet de sheet had gedefinieerd.

Bedankt in ieder geval en ik zal beter kijken naar de topic category!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan