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

Achtergrondkleur van textbox in Userform permanent wijzigen

Status
Niet open voor verdere reacties.

jantoedeledoki

Gebruiker
Lid geworden
22 dec 2010
Berichten
36
Hallo,

Ik heb in Excel 2010 een Userform gemaakt, waarin ik voor 8 bladen kan kiezen (met CheckBoxen) welke bladen ik wil printen of als pdf wil opslaan. Tot zover werkt het perfect. Nu heb ik achter elke CheckBox een twee TextBoxen (één voor de actie "Print"en één voor de actie "PDF") geplaatst die na het drukken op de Commandbutton "Print" of "PDF" van kleur moet veranderen van wit naar groen. Dit werkt in eerste instantie goed, alleen na het sluiten en vervolgens weer openen van het Userform, is de kleur weer terug naar wit. Het is echter de bedoeling dat de kleur groen blijft, onafhankelijk van de status van de bijbehorende CheckBox, zodat ik kan zien welk blad ik al heb geprint of als pdf heb opgeslagen.

Ik heb het geprobeerd door onderstaande code bij zowel de CommandButton_Click() als Userform_Activate() te plaatsen:
Code:
If CheckBox1.Value = True Then
 TextBox1.BackColor = RGB(0, 128, 0)
 If CheckBox1.Value = False And TextBox1.BackColor = RGB(0, 128, 0) Then
 TextBox1.BackColor = RGB(0, 128, 0)
 If CheckBox1.Value = False And TextBox1.BackColor = RGB(255, 255, 255) Then
 TextBox1.BackColor = RGB(255, 255, 255)
 End If
 End If
 End If
 
Die code gaat dus nooit dit gedeelte uitvoeren als Checkbox1 is aangevinkt:
Code:
 If CheckBox1.Value = False And TextBox1.BackColor = RGB(0, 128, 0) Then
 TextBox1.BackColor = RGB(0, 128, 0)
 If CheckBox1.Value = False And TextBox1.BackColor = RGB(255, 255, 255) Then
 TextBox1.BackColor = RGB(255, 255, 255)
 End If
 End If
 
Laatst bewerkt:
Klopt, daarom had ik ook al onderstaande code bedacht:
Code:
Private Sub UserForm_Activate()
CheckBox1.Value = False
CheckBox2.Value = False
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
CheckBox9.Value = False

 If CheckBox1.Value = False And TextBox1.BackColor = RGB(0, 128, 0) Then
 TextBox1.BackColor = RGB(0, 128, 0)
 If CheckBox1.Value = False And TextBox1.BackColor = RGB(255, 255, 255) Then
 TextBox1.BackColor = RGB(255, 255, 255)
 End If
 End If

End Sub

Mede omdat ik, wanneer ik een blad geprint heb, deze niet nóg een keer hoef te printen, maar misschien nog wél een keer als pdf op wil slaan.
 
Dat je eerst alle Checkboxes op False zet kan ik begrijpen maar de code eronder heeft geen enkele zin.
 
Je zet alles Checkboxes op False. Welke kleur moet de achtergrond van Textbox1 op dat moment hebben? Of zijn er meer afhankelijkheden?
 
De eerste keer dat het Workbook geopend wordt, moeten alle TextBoxen wit zijn. Pas als ik een keuze gemaakt heb met de Checkboxen moet de kleur op groen gaan. Waarschijnlijk moet ik op het moment dat de CommandButton geclicked wordt, het Workbook opslaan.
 
Ze moeten groen zijn als het document gesloten is en daarna weer wordt geopend en je eerder een checkbox had gebruikt? Dan zal je dus een soort van administratieblad moeten gebruiken omdat kleuren van textboxes e.d. na het openen van een document altijd de kleur zullen hebben zoals bij het ontwerp van het formulier is aangegeven.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan