Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 492
  • Last Modified:

Make command button work as a toggle button vba

I currently have a command button set with the code below.  I would like to make this command button more like a toggle button so that when you click it the first time it will produce the totals as it does now, but if you click it again it will remove the totals (or undo the command)..
Private Sub CommandButton1_Click()
 
Dim lrow As Long
lrow = Cells(65536, "D").End(xlUp).Row
Cells(lrow + 2, "I").Formula = "=sum(I16:I" & lrow & ")"
Cells(lrow + 2, "J").Formula = "=sum(J16:J" & lrow & ")"
Cells(lrow + 2, "K").Formula = "=sum(K16:K" & lrow & ")"
Cells(lrow + 2, "L").Formula = "=sum(L16:L" & lrow & ")"
Cells(lrow + 2, "M").Formula = "=sum(M16:M" & lrow & ")"
Cells(lrow + 2, "N").Formula = "=sum(N16:N" & lrow & ")"
Cells(lrow + 2, "O").Formula = "=sum(O16:O" & lrow & ")"
Cells(lrow + 2, "F") = "Total Hours"
Range("I" & lrow + 2 & ":O" & lrow + 2).Font.Bold = True
Cells(lrow + 2, "F").Font.Bold = True
End Sub

Open in new window

0
RRUTLAND5
Asked:
RRUTLAND5
  • 2
1 Solution
 
Steve DubyoCommented:
There is a toggle button that you can insert instead of a command button.  When you use the toggle button you can check the true/false value property of the button in the click event, so your code would look something like this..
Private Sub ToggleButton1_Click()
    If ToggleButton1.Value Then
        'Toggle on code
        Dim lrow As Long
        lrow = Cells(65536, "D").End(xlUp).Row
        Cells(lrow + 2, "I").Formula = "=sum(I16:I" & lrow & ")"
        Cells(lrow + 2, "J").Formula = "=sum(J16:J" & lrow & ")"
        Cells(lrow + 2, "K").Formula = "=sum(K16:K" & lrow & ")"
        Cells(lrow + 2, "L").Formula = "=sum(L16:L" & lrow & ")"
        Cells(lrow + 2, "M").Formula = "=sum(M16:M" & lrow & ")"
        Cells(lrow + 2, "N").Formula = "=sum(N16:N" & lrow & ")"
        Cells(lrow + 2, "O").Formula = "=sum(O16:O" & lrow & ")"
        Cells(lrow + 2, "F") = "Total Hours"
        Range("I" & lrow + 2 & ":O" & lrow + 2).Font.Bold = True
        Cells(lrow + 2, "F").Font.Bold = True
    Else
        'Toggle Off code
        Dim lrow As Long
        lrow = Cells(65536, "D").End(xlUp).Row
        Cells(lrow + 2, "I").Formula = ""
        Cells(lrow + 2, "J").Formula = ""
        Cells(lrow + 2, "K").Formula = ""
        Cells(lrow + 2, "L").Formula = ""
        Cells(lrow + 2, "M").Formula = ""
        Cells(lrow + 2, "N").Formula = ""
        Cells(lrow + 2, "O").Formula = ""
        Cells(lrow + 2, "F") = ""
        Range("I" & lrow + 2 & ":O" & lrow + 2).Font.Bold = False
        Cells(lrow + 2, "F").Font.Bold = False
    End If
End Sub

Open in new window

0
 
RRUTLAND5Author Commented:
Thanks....I'm getting a "compile error: Duplicate declaration in current scope" at: lrow As Long in the Toggle Off Code
0
 
Steve DubyoCommented:
Ah, yes I missed that as I copy/pasted your code.  Need to declare lrow just once, I've ammended the code below.
Private Sub ToggleButton1_Click()
    Dim lrow As Long
    If ToggleButton1.Value Then
        'Toggle on code
        lrow = Cells(65536, "D").End(xlUp).Row
        Cells(lrow + 2, "I").Formula = "=sum(I16:I" & lrow & ")"
        Cells(lrow + 2, "J").Formula = "=sum(J16:J" & lrow & ")"
        Cells(lrow + 2, "K").Formula = "=sum(K16:K" & lrow & ")"
        Cells(lrow + 2, "L").Formula = "=sum(L16:L" & lrow & ")"
        Cells(lrow + 2, "M").Formula = "=sum(M16:M" & lrow & ")"
        Cells(lrow + 2, "N").Formula = "=sum(N16:N" & lrow & ")"
        Cells(lrow + 2, "O").Formula = "=sum(O16:O" & lrow & ")"
        Cells(lrow + 2, "F") = "Total Hours"
        Range("I" & lrow + 2 & ":O" & lrow + 2).Font.Bold = True
        Cells(lrow + 2, "F").Font.Bold = True
    Else
        'Toggle Off code
        lrow = Cells(65536, "D").End(xlUp).Row
        Cells(lrow + 2, "I").Formula = ""
        Cells(lrow + 2, "J").Formula = ""
        Cells(lrow + 2, "K").Formula = ""
        Cells(lrow + 2, "L").Formula = ""
        Cells(lrow + 2, "M").Formula = ""
        Cells(lrow + 2, "N").Formula = ""
        Cells(lrow + 2, "O").Formula = ""
        Cells(lrow + 2, "F") = ""
        Range("I" & lrow + 2 & ":O" & lrow + 2).Font.Bold = False
        Cells(lrow + 2, "F").Font.Bold = False
    End If
End Sub

Open in new window

0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now