Case à cocher sous vba

  • Initiateur de la discussion Initiateur de la discussion djack7917
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

djack7917

XLDnaute Nouveau
bonjour, comme je n'arrive pas à mes fins, je viens à la rescousse.
J'ai créé un petit programme avec un userform1 ou dedans j'ai inséré plusieurs champs dont "un chekbox",
ma demande est comment faire pour que lorsque je valide avec le bouton valider de l'userform, le chekbox de mon userform soit copier dans ma feuille d'excel (cellule H) de façon à permettre à une autre personne de pouvoir cocher ou décocher les cases sans ouvrir l'userform.
Et ce sur une seule ligne à la fois
merci
 

Pièces jointes

Dernière édition:
Re : Case à cocher sous vba

Bonjour et Bienvenu,

Aidons SFR (bien qu'il ne nous aide pas toujours...arf😀)

Rajoute un valeur au tableau renvoyé dans les cellules

Code:
    .Range(.Cells(Ligne, 1), .Cells(Ligne, 8)).Value = Array(Me.DateEch.Value, Me.DateExp.Value, Me.NomPrenom.Value, Me.N°SAV.Value, Me.N°Fact.Value, Me.ModSFR.Value, Me.Valeur.Value, Me.CheckBox1.Value)
h

A+
 
Re : Case à cocher sous vba

Suite à ma proposition et à votre nouvelle information, dans votre module feuil1 (AccordsEchanges)
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 8 And Target.Count = 1 Then Target.Value = -(Target.Value = 0)
End Sub
P.S. Désolé, je me trompe, vous avez dit dès le début qu'on devait pouvoir cocher/décocher dans la feuille.
À +
 
Dernière édition:
Re : Case à cocher sous vba

Ca ne marche pas, en revance le code suivant insère une checkbox dans ma feuille, seul problème c'est que je ne souhaite qu'un checkbox et non plusieurs, comment faire merci

'Dim i As Integer
'Dim horizontal As Double
'Dim vertical As Double

'horizontal = ActiveSheet.Columns("a:g").Width 'Position horizontale = colonne C

'i = ActiveSheet.UsedRange.Rows.Count 'compte le nombre de lignes dans la feuille

'For j = 3 To i 'boucle sur chaque ligne
'vertical = ActiveSheet.Rows("1:" & j - 1).Height 'Fixe la hauteur de la ligne j
'ActiveSheet.CheckBoxes.Add(horizontal, vertical, 15, 15).Select 'position et taille de la checkbox
'Selection.Characters.Text = "" 'pas de texte dans la checkbox
'Selection.Name = "CheckBox" & j 'Nomme la checkbox pour pouvoir travailler dessus par après

'Next j
 
Re : Case à cocher sous vba

Si, ça marche ! Il ne vous reste qu'à mettre 1 ou 0 dans la valeur de la cellule dans l'userform.
Et... chassez vraiment une bonne fois pour toutes et à tout jamais l'idée de mettre une foultitude de vrais CheckBox dans des feuilles. Que ce soient des contrôles ou des shapes, c'est ingérable ! (ce qui ne veut dire que pourrais avaler ça : J'aurais trouvé un truc comme ça dans un classeur fait par quelqu'un d'autre j'aurai tout bazardé et remplacé par ce que je vous suggère)
 

Pièces jointes

Dernière édition:
Re : Case à cocher sous vba

Bonjour.
Non, je voulais dire que dans le code de l'userform il fallait attribuer la valeur 1 ou 0 à la valeur de la cellule représentant la coche, selon qu'on veut qu'elle apparaisse cochée ou non cochée. On peut pour cela attribuer une valeur d'expression Boolean telle que la Value d'un CheckBox précédée du signe -
Contrairement à Excel qui respecte à VRAI son concept mathématique booléen, True converti en numérique vaut en effet -1, ce qui correspond à une configuration binaire d'entier partout à 1.
Cordialement.
 
Re : Case à cocher sous vba

Bonjour à tous je profite de topique pour poser ma question, ou exposer mon souci, je suis en pleins dans la création d'un Userform qui permet de remplir un tableau complet pour une equipe commercial jusque la j'avance a petit pas mais j'avance mais je bloque sur les ChecBox, en faite j'ai 3 Checkbox qui permette de designer à qui revient l'affaire en claire on choisi le commercial.
Donc j'aimerais que dans mon tableau excel apparaisse un "1" ou " " pour qu'a la fin du tableau nous puissions tirer des stats.
Ma contrainte, je souhaite que ça incrémente un nouvelle ligne a chaque fois, voila ce qu'ai j'ai tapé :
'Choix de commercial

Private Sub UserForm1_Activate()
Dim l As Integer
l = Sheets("Clients").Range("a65536").End(xlUp).Row + 1
If Range("Q" & l).Value Then
Me.CheckBox1.Value = True
Else: Me.CheckBox1.Value = False
End If
End Sub

Private Sub CheckBox1_Click()
Dim l As Integer
l = Sheets("Clients").Range("a65536").End(xlUp).Row + 1
If CheckBox1.Value Then
l = 1
Else
l = 0
End If
End Sub

Ca fonctionne dans les grande ligne mais je n'arrive à obtenir qu'un "Vrai" ou "Faux" ce qui m'intéresse c'est un "1" ou " " (rien quoi)
Merci d'avance pour vos lumières.
 
Re : Case à cocher sous vba

La 1ère instruction se met dans une procédure où vous voulez mettre CheckBox1 en conformité avec ce qu'il y a déjà dans une cellule à la ligne l colonne Q (il vaudrait d'ailleurs mieux Cells(l, "Q").Value plutôt que Range("Q" & l).Value)
Le 2ième dans une procédure ou vous voulez faire l'inverse: si CheckBox1 est coché mettre 1 dans la cellule, rien dans le cas contraire.
 
Re : Case à cocher sous vba

Super! avant tout merci !
Apparement ce serais la deuxième solution qui me conviendrais la plus...
Maintenant il ne me reste plus qu'a la comprendre et surtout à savoir comment la mettre en place dans mon programme...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
305
Réponses
1
Affichages
186
Réponses
18
Affichages
1 K
Réponses
11
Affichages
1 K
Retour