Reputation: 5
I have the code below working in a budget template for work. However, before I roll this out to all the users, I need to make it Mac friendly. Since Macs don't like ActiveX Controls, I'm trying to figure out a way to make this code work using form controls. Anyone have any ideas for me? Thanks!
Private Sub travelcalc_Click()
ActiveSheet.Unprotect Password:="PASSWORD"
If Me.travelcalc.Value = False Then
Range("C19:L20").Locked = False
Sheets("Travel Calculator").Visible = False
Else
Sheets("Travel Calculator").Visible = True
Range("$C$19") = Worksheets("Travel Calculator").Range("$N$25")
Range("$D$19") = Worksheets("Travel Calculator").Range("$P$25")
Range("$E$19") = Worksheets("Travel Calculator").Range("$R$25")
Range("$F$19") = Worksheets("Travel Calculator").Range("$T$25")
Range("$G$19") = Worksheets("Travel Calculator").Range("$V$25")
Range("$H$19") = Worksheets("Travel Calculator").Range("$X$25")
Range("$I$19") = Worksheets("Travel Calculator").Range("$Z$25")
Range("$J$19") = Worksheets("Travel Calculator").Range("$AB$25")
Range("$K$19") = Worksheets("Travel Calculator").Range("$AD$25")
Range("$L$19") = Worksheets("Travel Calculator").Range("$AF$25")
Range("$C$20") = Worksheets("Travel Calculator").Range("$N$51")
Range("$D$20") = Worksheets("Travel Calculator").Range("$P$51")
Range("$E$20") = Worksheets("Travel Calculator").Range("$R$51")
Range("$F$20") = Worksheets("Travel Calculator").Range("$T$51")
Range("$G$20") = Worksheets("Travel Calculator").Range("$V$51")
Range("$H$20") = Worksheets("Travel Calculator").Range("$X$51")
Range("$I$20") = Worksheets("Travel Calculator").Range("$Z$51")
Range("$J$20") = Worksheets("Travel Calculator").Range("$AB$51")
Range("$K$20") = Worksheets("Travel Calculator").Range("$AD$51")
Range("$L$20") = Worksheets("Travel Calculator").Range("$AF$51")
Range("C19:L20").Locked = True
End If
ActiveSheet.Protect Password:="PASSWORD", AllowFormattingColumns:=True, AllowFormattingRows:=True
End Sub
Upvotes: 0
Views: 1057
Reputation: 5
This macro assigned to the check box worked perfectly.
Sub CheckBox11_Click()
ActiveSheet.Unprotect Password:="PASSWORD"
If ActiveSheet.Shapes("Check Box 11").OLEFormat.Object.Value <> 1 Then
Range("C19:L20").Locked = False
Sheets("Travel Calculator").Visible = False
Else
Sheets("Travel Calculator").Visible = True
Range("$C$19") = Worksheets("Travel Calculator").Range("$N$25")
Range("$D$19") = Worksheets("Travel Calculator").Range("$P$25")
Range("$E$19") = Worksheets("Travel Calculator").Range("$R$25")
Range("$F$19") = Worksheets("Travel Calculator").Range("$T$25")
Range("$G$19") = Worksheets("Travel Calculator").Range("$V$25")
Range("$H$19") = Worksheets("Travel Calculator").Range("$X$25")
Range("$I$19") = Worksheets("Travel Calculator").Range("$Z$25")
Range("$J$19") = Worksheets("Travel Calculator").Range("$AB$25")
Range("$K$19") = Worksheets("Travel Calculator").Range("$AD$25")
Range("$L$19") = Worksheets("Travel Calculator").Range("$AF$25")
Range("$C$20") = Worksheets("Travel Calculator").Range("$N$51")
Range("$D$20") = Worksheets("Travel Calculator").Range("$P$51")
Range("$E$20") = Worksheets("Travel Calculator").Range("$R$51")
Range("$F$20") = Worksheets("Travel Calculator").Range("$T$51")
Range("$G$20") = Worksheets("Travel Calculator").Range("$V$51")
Range("$H$20") = Worksheets("Travel Calculator").Range("$X$51")
Range("$I$20") = Worksheets("Travel Calculator").Range("$Z$51")
Range("$J$20") = Worksheets("Travel Calculator").Range("$AB$51")
Range("$K$20") = Worksheets("Travel Calculator").Range("$AD$51")
Range("$L$20") = Worksheets("Travel Calculator").Range("$AF$51")
Range("C19:L20").Locked = True
End If
ActiveSheet.Protect Password:="PASSWORD", AllowFormattingColumns:=True, AllowFormattingRows:=True
End Sub
Upvotes: 0
Reputation: 5416
After you insert the form control, right click it, and select Assign macro, and select New. A macro will be assigned to its "click event".
Checking if it has been checked is a bit tricky, but doable:
Private Sub CheckBox1_Click() 'assign this macro to your checkbox; make sure it is in a standard module
ActiveSheet.Unprotect Password:="PASSWORD"
If ActiveSheet.Shapes("Check Box 1").OLEFormat.Object.Value <> 1 Then
Range("C19:L20").Locked = False
Sheets("Travel Calculator").Visible = False
Else
yadda-yadda your code here...
End if
ActiveSheet.Protect Password:="PASSWORD", AllowFormattingColumns:=True, AllowFormattingRows:=True
End Sub
To be honest, I can only hope this works on MAC, never tried that. But if you say Form controls work OK, then this should do it...
Upvotes: 1