Case à cocher sous vba

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

  • Accords Accessoires SFR.xls
    99.5 KB · Affichages: 144
Dernière édition:
G

Guest

Guest
Re : Case à cocher sous vba

Bonjour et Bienvenu,

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

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+
 

Dranreb

XLDnaute Barbatruc
Re : Case à cocher sous vba

Bonjour.
Le mieux c'est d'enregistrer -CheckBox1.Value dans la colonne H,
de mettre à votre colonne H le format de nombre personnalisé: [=0]"¨";"þ" et la police WingDings.
Cordialement.
 

djack7917

XLDnaute Nouveau
Re : Case à cocher sous vba

je connaissais ce code, ce que je cherche c'est comment par l'intermédiaire d'un code insérer dans la feuille et la cellule H, une case à chocher, pour permettre à qqun d'autre de les cocher ou décocher
 

Dranreb

XLDnaute Barbatruc
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:

djack7917

XLDnaute Nouveau
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
 

Dranreb

XLDnaute Barbatruc
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

  • CaseCocherWingdings.xls
    92.5 KB · Affichages: 204
Dernière édition:

djack7917

XLDnaute Nouveau
Re : Case à cocher sous vba

Bonjour et merci pour ton aide, je suis débutant en vb, alors ne m'en veut pas si je pose certaines questions
pour finir, tu dis qu'il faut que j'attribue la valeur de 1 ou 0 à l'user form, mais où....?
 

Dranreb

XLDnaute Barbatruc
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.
 

KGCE69

XLDnaute Nouveau
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.
 

Dranreb

XLDnaute Barbatruc
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.
 

KGCE69

XLDnaute Nouveau
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...
 

Discussions similaires

Réponses
5
Affichages
225

Membres actuellement en ligne

Statistiques des forums

Discussions
312 685
Messages
2 090 941
Membres
104 703
dernier inscrit
romla937