• 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.

Kleur toggle button wijzigen

Status
Niet open voor verdere reacties.

popipipo

Meubilair
Lid geworden
21 nov 2006
Berichten
8.914
Ik heb een toggle button die een aantal regels verbergt en weer toont
De naam in de button veranderd keurig van 'verbergen' in 'weer tonen' visa versa.

Hoe moet ik de code aanpassen om de font- en background color ook te veranderen?
Bijvoorbeeld van 'rode achtergrond' en 'gele tekst' naar het omgekeerde?
Of welke andere kleur ook.


Code:
Private Sub CommandButton2_Click()
If CommandButton1.Caption = "Verbergen" Then
CommandButton1.Caption = "Weer tonen"

  On Error Resume Next
  Sheets(1).Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True

ElseIf CommandButton1.Caption = "Weer tonen" Then
 CommandButton1.Caption = "Verbergen"
 
 On Error Resume Next
  Sheets(1).Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = False

End If
End Sub
 
Laatst bewerkt:
Op deze manier:
Code:
    CommandButton1.BackColor = vbRed
    CommandButton1.ForeColor = vbYellow
 
Dit werkt uiteraard
Maar ik had een antwoord verwacht met een nummer van de kleur
onderstaande macro geeft mij de gewenste kleuren.
Code:
Sub Macro1()
    Range("a1").Select
    With Selection.Interior
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = 0.4
    End With
    With Selection.Font
        .ThemeColor = xlThemeColorAccent6
        .TintAndShade = -0.4
    End With
End Sub

Jou antwoord aangepast naar :
Code:
CommandButton1.BackColor = xlThemeColorAccent6.TintAndShade = 0.4
CommandButton1.ForeColor = xlThemeColorAccent6.TintAndShade = -0.4


dit werkt helaas niet.
 
Die dingen kun je niet zomaar samenvoegen. Een commandbutton kent geen themakleuren en dergelijke. Hij verwacht een longword. Probeer deze maar eens:
CommandButton1.BackColor = 9359529 'De lichtgroene
CommandButton1.BackColor = 2844739 'De donkergroene
 
Of rood en groen natuurlijk:
Code:
Private Sub CommandButton2_Click()
If CommandButton1.Caption = "Verbergen" Then
CommandButton1.Caption = "Weer tonen"
 CommandButton1.BackColor = &H80FF80
  On Error Resume Next
  Sheets(1).Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True

ElseIf CommandButton1.Caption = "Weer tonen" Then
 CommandButton1.Caption = "Verbergen"
CommandButton1.BackColor = &HFF&
 
 On Error Resume Next
  Sheets(1).Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = False

End If
End Sub
 
De waarden die ik gebruikte zijn de kleuren die TS zelf aangaf in #3.
 
Code:
Private Sub CommandButton1_Click()
  With CommandButton1
    Sheets(1).Columns(1).SpecialCells(4).EntireRow.Hidden = .Caption = "Verbergen"
    .Caption = IIf(.Caption = "Verbergen", "Tonen", "Verbergen")

    y = .ForeColor
    .ForeColor = .BackColor
    .BackColor = y
  End With
End Sub
 
Het ging je alleen om de nummers?
Je kunt eenvoudig een cel iedere kleur geven op de manier zoals je dat al deed en vervolgens de Longword waarde ervan ophalen met:
Waarde = Range("A1").Interior.Color
 
Laatst bewerkt:
@POPIPIPO

Dat doen we toch simpel met .color=RGB(0-255,0-255,0-255)
 
Als je het zegt zal het zo wezen.
Kun je het dan in mijn vbtje aanpassen zodat ik het wel begrijp?
Dit geldt natuurlijk ook voor snb
 
Het gaat me niet om je resultaat, dat zal wel in orde zijn. Het ging je om het nummer van een bepaalde kleur en die kan je heel eenvoudig verkrijgen op de manier zals ik beschreef. Daarnaast kan je inderdaad zoals snb al zei, ook de RGB functie gebruiken om de Longword waarde van een kleur aan een object te geven.
Die tabellen op het internet zijn leuk maar die heb je er dus niet voor nodig.
 
@Popi

Heb je überhaupt wel naar mijn suggestie in #7 gekeken ?

Draai deze voor de lol eens in je bestand:

Code:
Private Sub CommandButton1_Click()
   With CommandButton1
      For Each sh In Worksheets(Array("januari", "februari", "december"))
        .Cells(8, 2).Resize(23).SpecialCells(4).EntireRow.Hidden = .Caption = "Verbergen"
      Next

     .Caption = IIf(.Caption = "Verbergen", "Tonen", "Verbergen")

      y = .BackColor
      .BackColor = .ForeColor
      .ForeColor = y
   End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan