Modifier valeur checkbox

Bonjour,

Est-ce possible de modifier la valeur d'une checkbox quand on la reporte dans une cellule.

Pour le moment : Checkbox non cochée = "FAUX" et Checkbox cochée = "VRAI"

Je souhaiterai ceci : Checkbox non cochée = "" (vide) et Checkbox cochée = "Oui"

Merci de votre aide !

BOB

bonjour

Un exemple de ton fichier serait le bienvenu

Crdlt

Salut le fil..

Utilises la propriété ControlSource de ta ChekBox

Private Sub UserForm_Initialize()
Me.CheckBox1.ControlSource = Worksheets("Feuil1").Range("A1").Address
End Sub

Bonne Programmation.

Voici un exemple.

J'aimerai que les checkbox non cochées n'indiquent pas FAUX dans la cellule correspondante.

Merci de votre aide !

BOB

Je ne sais malheureusement pas comment utiliser la propriété ControlSource de la checkbox ... Pour lui demander comme unique résultat OUI (quand la checkbox est cochée) et rien quand elle reste non cochée.

Salut le fil...

hé bé t'avais la solution dans ma réponse

Private Sub CheckBox1_Click()

'If CheckBox1.Value = True Then
'// La valeur des Checkbox sont calées sur celle de CheckBox1
UserForm1.CheckBox2.Visible = CheckBox1.Value
UserForm1.CheckBox3.Visible = CheckBox1.Value
UserForm1.CheckBox4.Visible = CheckBox1.Value
UserForm1.CheckBox5.Visible = CheckBox1.Value

'Else

'UserForm1.CheckBox2.Visible = False
'UserForm1.CheckBox3.Visible = False
'UserForm1.CheckBox4.Visible = False
'UserForm1.CheckBox5.Visible = False

'End If
End Sub

Private Sub CommandButton1_Click()

'Sheets("Feuil1").Cells(4, 4).Value = UserForm1.CheckBox1.Value
'Sheets("Feuil1").Cells(5, 4).Value = UserForm1.CheckBox2.Value
'Sheets("Feuil1").Cells(6, 4).Value = UserForm1.CheckBox3.Value
'Sheets("Feuil1").Cells(7, 4).Value = UserForm1.CheckBox4.Value
'Sheets("Feuil1").Cells(8, 4).Value = UserForm1.CheckBox5.Value

End Sub

Private Sub UserForm_Initialize()
    With UserForm1.CheckBox1
        .Visible = True
        .ControlSource = Worksheets("Feuil1").Range("D4").Address
    End With
    With UserForm1.CheckBox2
        .Visible = CheckBox1.Value
        .ControlSource = Worksheets("Feuil1").Range("D5").Address
    End With
    With UserForm1.CheckBox3
        .Visible = CheckBox1.Value
        .ControlSource = Worksheets("Feuil1").Range("D6").Address
    End With
    With UserForm1.CheckBox4
        .Visible = CheckBox1.Value
        .ControlSource = Worksheets("Feuil1").Range("D7").Address
    End With
    With UserForm1.CheckBox5
        .Visible = CheckBox1.Value
        .ControlSource = Worksheets("Feuil1").Range("D8").Address
    End With

End Sub

du coup ton bouton valider ne sert plus à rien

Super Merci !

Salut,

Je viens de me rendre compte que je n'ai pas entièrement répondu à ta question. Changes le code comme cela.

Option Explicit

Private Sub CheckBox1_Click()

    '// La valeur des Checkbox sont calées sur celle de CheckBox1
    UserForm1.CheckBox2.Visible = CheckBox1.Value
    UserForm1.CheckBox3.Visible = CheckBox1.Value
    UserForm1.CheckBox4.Visible = CheckBox1.Value
    UserForm1.CheckBox5.Visible = CheckBox1.Value
    ReturValueViability ("CheckBox1")

End Sub

Private Sub CheckBox2_Click()
    ReturValueViability ("CheckBox2")
End Sub

Private Sub CheckBox3_Click()
    ReturValueViability ("CheckBox3")
End Sub

Private Sub CheckBox4_Click()
    ReturValueViability ("CheckBox4")
End Sub

Private Sub CheckBox5_Click()
    ReturValueViability ("CheckBox5")
End Sub

Private Sub CommandButton1_Click()
    Unload Me
End Sub
Private Sub ReturValueViability(Entry As String)

    With Me.Controls(Entry)
        Select Case .Value
            Case True
                Worksheets("Feuil1").Range(.Tag).Value = "OUI"
            Case False
                Worksheets("Feuil1").Range(.Tag).Value = ""
            Case Else
                Worksheets("Feuil1").Range(.Tag).Value = ""
        End Select
    End With

End Sub

Private Sub UserForm_Initialize()
    '// On efface les cellules
    Worksheets("Feuil1").Range("D4:D8").ClearContents
    With UserForm1.CheckBox1
        .Value = False
        .Visible = True
        .Tag = "D4"    '// On définit le Tag celà aurait pu être fait dans l'IDE
    End With

    With UserForm1.CheckBox2
        .Visible = CheckBox1.Value
        .Tag = "D5"
    End With

    With UserForm1.CheckBox3
        .Visible = CheckBox1.Value
        .Tag = "D6"
    End With

    With UserForm1.CheckBox4
        .Visible = CheckBox1.Value
        .Tag = "D7"
    End With

    With UserForm1.CheckBox5
        .Visible = CheckBox1.Value
        .Tag = "D8"
    End With
End Sub

Bien entendu il y a d'autres moyens d'arriver au même résultat...

Bonjour …

Bien entendu il y a d'autres moyens d'arriver au même résultat...

salut Jean-Paul, en voici un exemple avec ma spécialité de fausses cases à cocher qui proviennent d’un seul contrôle ListBox (nommé ici O1).

Ici, on peut, en plus, corriger les saisies avant de fermer le formulaire :

Dim n As Byte
Private Sub UserForm_Initialize()
  O1.List = Array("EAU", "GAZ", "ELECRICTE", "EU")
  O1.Visible = 0: Va.Visible = 0  'contrôles cachés
  'reprise des valeurs
  For n = 0 To 3: O1.Selected(n) = Cells(n + 5, 4) <> "": Next
End Sub
Private Sub Ch_Change()  'case pour afficher ou pas la liste
  O1.Visible = Ch
End Sub
Private Sub O1_Change()
  Va.Visible = 1 'pour afficher le bouton de report
End Sub
Private Sub Va_Click() ‘pour reporter les cas
  For n = 0 To 3: Cells(n + 5, 4) = IIf(O1.Selected(n), "x", ""): Next
End Sub

Code plus court sans aucun doute...

Rechercher des sujets similaires à "modifier valeur checkbox"