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
 

Fichiers joints

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+
 

jcf6464

XLDnaute Occasionnel
Re : validation de chekbox

bonsoir Paf,

j'ai modifier le fichier un gourde de ma part,

merci d'avance jcf64
 

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
 

Staple1600

XLDnaute Barbatruc
Re : validation de chekbox

Bonsoir à tous


Paf
Pas testé, mais ça devrait le faire aussi, non ?
Code:
For i = 1 to 90
    Controls("CheckBox" & i) =.Cells(Ligne , i + 5) =""
Next i
 

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
 

Paf

XLDnaute Barbatruc
Re : validation de chekbox

Re,

c'est curieux !
Le code du poste #6 a été testé avant d'en faire une proposition, celui du poste #8 n'a pas été testé.

Le principal, c'est que ça fonctionne .

Bonne suite
 

jcf6464

XLDnaute Occasionnel
Re : validation de chekbox

bonjour

merci pour ta réponse ,oui c'est curieux

le fichier du post 1 est modifier

bonne journée

a+ jcf64
 
Dernière édition:

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+
 

jcf6464

XLDnaute Occasionnel
Re : validation de chekbox

bonjour

ok autant pour moi pour le fichier j'ai pas réalisé

ta solution des zéros peut tu si tu veut bien me le transcrire dans le fichier ci joint !!! je ne sais pas comment faire

merci d'avance j'ai bien dis si tu veut bien

cordialement jcf64
 

Fichiers joints

Paf

XLDnaute Barbatruc
Re : validation de chekbox

par exemple

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

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas