validation de chekbox

jcf6464

XLDnaute Occasionnel
Bonsoir le forum,

je recherche depuis 2 jours comment afficher les checkbox validé,

je m'explique je coche des chekbox dans le formulaire (Formulaire de Gestion des inscrits)
--> onglet (saisie des données) des lettres J,P,M,S,N s’incrémente dans la feuille(Inscrits) cela marche bien , je n'arrive pas à avoir la case cocher quand je reviens dessus pour modification !!!,

merci d'avance jcf64
je pense que je mi prend mal,


fichier joint
 

Pièces jointes

  • JCF_ V001.xlsm
    267.2 KB · Affichages: 21
  • JCF_ V001.xlsm
    267.2 KB · Affichages: 22
  • JCF_ V001.xlsm
    267.2 KB · Affichages: 22
Dernière édition:

Paf

XLDnaute Barbatruc
Re : validation de chekbox

Bonjour

J'ai dû raté quelque chose !
je m'explique je coche des chekbox dans le formulaire (Formulaire de Gestion des inscrits)

Où est le formulaire ? je n'ai trouvé qu'une UserForm "Usf_Licencies" qui fait appel à la feuille "Licencies" qui n'existe pas dans le classeur joint .

A+
 

Paf

XLDnaute Barbatruc
Re : validation de chekbox

Re






A la validation des données on inscrit J,P,M,S ou N dans la feuille "Licencies"

Quand on sélectionne à nouveau la même personne dans la liste des licenciés , on va lire les données de ce licencié (code de Private Sub lst_Licencies_Click())

Or pour mettre à jour les CheckBox ce code vérifie que dans les cellule de la feuille "Licencies" contiennent "x" !!
( Me.J_CheckBox1 = IIf(.Range("F" & Ligne) = "x", True, False) )

Deux solutions

1 inscrire des "X" à la validation

2 modifier le test pour chaque ligne déterminant la valeur des checkbox


A+
 

jcf6464

XLDnaute Occasionnel
Re : validation de chekbox

bonsoir Paf

Merci pour la réponse

oui je te comprend mais comment faire la solution 2

ou comment compter les (x) pour chaque nom et intitulés ( Journée de vol) par exemple,

merci pour ton coup de main

a+ jcf64
 

Paf

XLDnaute Barbatruc
Re : validation de chekbox

Re

actuellement le code ne vérifie pour afficher les CheckBox que les journéees 1 et 2 (il y en a 18 !)

le nom des CheckBox ne sont pas identiques suivant les journées :
du type J_CheckBox1 P_CheckBox2 .M_CheckBox3 S_CheckBox4 N_CheckBox5 pour les journées 1,2 et 3

du type CheckBox15 CheckBox16 CheckBox17 CheckBox18 CheckBox15 pour les autres journées

Il faut donc uniformiser !

Leur donner simplement le nom de CheckBox suivi d'un numéro croissant en continu pour toutes les journées ( CheckBox1, CheckBox2, .... CheckBox90) permettrait un code plus léger pour afficher ces Checkbox ( ainsi que l'écriture dans la feuille)


Dans Private Sub lst_Licencies_Click()

on pourrait ainsi remplacer
Code:
    Me.J_CheckBox1 = IIf(.Range("F" & Ligne) = "x", True, False)
    'Me.J_CheckBox1 = IIf(.Range("F" & Ligne) = "x", True, False)    'JOUR1 journée de vol
    Me.P_CheckBox2 = IIf(.Range("G" & Ligne) = "x", True, False)
    Me.M_CheckBox3 = IIf(.Range("H" & Ligne) = "x", True, False)
    Me.S_CheckBox4 = IIf(.Range("I" & Ligne) = "x", True, False)
    Me.N_CheckBox5 = IIf(.Range("J" & Ligne) = "x", True, False)
    'J2
    Me.J_CheckBox6 = IIf(.Range("K" & Ligne) = "x", True, False)    'JOUR2 journée de vol
    Me.P_CheckBox7 = IIf(.Range("L" & Ligne) = "x", True, False)
    Me.M_CheckBox8 = IIf(.Range("M" & Ligne) = "x", True, False)
    Me.S_CheckBox9 = IIf(.Range("N" & Ligne) = "x", True, False)
    Me.N_CheckBox10 = IIf(.Range("O" & Ligne) = "x", True, False)

qui n'agit que pour les 2 première journées

par

Code:
For i = 1 to 90
    Controls("CheckBox" & i) = IIf(.Cells(Ligne , i + 5) = "", False, True)
Next i

Bonne suite
 

Paf

XLDnaute Barbatruc
Re : validation de chekbox

Bonsoir Staple1600


Oui et Non !

Oui pour le principe

et Non parce que quand .Cells(Ligne , i + 5) ="" est vrai, Controls("CheckBox" & i) est cochée , alors que l'on ne veut voir la CheckBox cochée que si la cellule est renseignée.


Il faudrait inverser le test de la cellule:
Controls("CheckBox" & i) =.Cells(Ligne , i + 5) <>""
ou
Controls("CheckBox" & i) = Not (.Cells(Ligne, i + 5) = "")

Bonne soirée
 

jcf6464

XLDnaute Occasionnel
Re : validation de chekbox

bonjour, Staple1600 et paf

merci du coup de main
je n'arrive pas à mettre la boucle contrôls en place je ne suis pas très doué

je suis arrivé a faire que la checkbox soit cocher , mais c'est vrai si l'on pouvez raccourcir le code ce serais bien

ma solution (Me.CheckBox1 = IIf(.Range("F" & Ligne) = "", False, True))

bonne journée à vous deux il va faire chaud annoncé 26 a luchon

a+ jcf64
 

Paf

XLDnaute Barbatruc
Re : validation de chekbox

Re

je suis arrivé a faire que la checkbox soit cocher , mais c'est vrai si l'on pouvez raccourcir le code ce serais bien
ma solution (Me.CheckBox1 = IIf(.Range("F" & Ligne) = "", False, True))

Si toutes les checkbox des 18 journées sont renommées de checkbox1 à checkbox90, le code proposé en fin de post #6 fonctionne .

A+
 

jcf6464

XLDnaute Occasionnel
Re : validation de chekbox

bonsoir a vous deux

Après avoir renommer les checkbox le code qui marche c'est :
Controls("CheckBox" & i) = Not (.Cells(Ligne, i + 5) = "") du post 8

le code du post 6 ne fonctionne pas

je reviendrais pour d'autres questions

merci et bonne soirée jcf64
 

jcf6464

XLDnaute Occasionnel
Re : validation de chekbox

bonjour

toujours dans le fichier post 1

j'ai dans (Init_Licencies) je met des 0 avec( Me.J1_Matin = "0") cela marche quand je crée un nouveau enregistrement

mais quand je modifie un enregistrement le 0 n'est plus la et cela crée une erreur

pouvez vous me dire pourquoi

merci pour la réponse

cordialement jcf64
 

Paf

XLDnaute Barbatruc
Re : validation de chekbox

Re bonjour

Plutôt que de remplacer le classeur du post #1, il aurait mieux valu en posté un nouveau.
Si on se réfère aux codes proposés pour ce classeur du post #1, plus rien ne correspond !

sinon

le problème ne provient pas de la sub Init_Licencies mais de la Private Sub Cmd_ValidAth_Click() de la userform Usf_Licencies on l'on trouve une série de lignes de code du genre:

Sheets("VentillationJournées").Range("U" & Ligne) = CCur(Me.J4_Matin.Value)

Si Me.J4_Matin.Value a pour valeur : "" ( donc vide) la fonction CCur ne sait pas la convertir .

Solution : avant de convertir, faire un test si la valeur <> ""

A+
 

Discussions similaires

Réponses
5
Affichages
517