Valider cochage de plusieurs dizaines de checkbox

gacastex

XLDnaute Nouveau
Bonsoir,

J'ai essayé de trouver mon bonheur sur le Forum Ecel avant d'écrire ce post, mais les problèmes exposés (et leurs solutions) sont nettement trop compliquées pour mon umble cas!

Je ne cherche pas à, en cochant une checkbox, recopier la données dans une feuille, ni filtrer des réponses... mais juste à savoir si la checkbox a bien été cochée!

Le cas concret : faire une feuille excel de réconcialiation bancaire (pointage des comptes) avec : un intitulé, un montant et une case à cocher. Si la case est cochée, en fermant Excel, une boite de dialogue remercie l'utilisateur. Si ce n'est pas le cas, elle lui signifie que des cases n'ont pas été cochées;

J'ai pensé à un code du genre :

If Caseàcocher1.Value = True Then
MsgBox "La vérification des comptes a été renseignées avec succés"
Etc...
End If

Mais je dois le faire pour des dizaines et des dizaines d'intitulés. Est ce qu'il y a un moyen de faire faire le "travail" à un seul code, sans avoir à en créer un pour chaque checkbox?

Je sais pas trop si cette demande est lumineuse..mais si vous avez des questions, n'hesitez pas (c'est moi qui demande de l'aide,normal que je donne les infos nécessaire, non?).

Merci de vos pistes, dans tous les cas.
bonne soirée
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : Valider cochage de plusieurs dizaines de checkbox

Bonjour, en supposant que TOUS tes CheckBox se suivent numériquement parlant (c'est à dire de 1 à 4 comme dans mon exemple), et pour peu qu'ils aient un Caption, tu peux mettre ceci :

Private Sub CommandButton1_Click()
For i = 1 To 4
If Controls("CheckBox" & i).Value = False Then
MsgBox "Au moins un contrôle non validé " & Controls("CheckBox" & i).Caption: Exit Sub
End If
Next i
MsgBox "merci"
Unload Me
End Sub
 

Pièces jointes

  • gacastex.zip
    7.1 KB · Affichages: 56
  • gacastex.zip
    7.1 KB · Affichages: 57
  • gacastex.zip
    7.1 KB · Affichages: 62

gacastex

XLDnaute Nouveau
Re : Valider cochage de plusieurs dizaines de checkbox

Bonjour BhBh,

merci pour ta réactivité!
J'ai regardé ta proposition : c'est exactement ce qu'il me faut!

Seul souci : je voudrais le faire directement dans Excel, sans passer par un userform (ça m'oblige à passer par une combobox pour les intitulés, 1textbox pour le montant, etc. alors que c'est pas indispensable (bien que se soit plus fonctionnel, il est vrai)).

Est qu'en créant les CheckBox directement sous excel et en mettant un Command de sortie/validation, je peux réutiliser le code que tu m'as transmis?

merci encore pour ton aide, en tout cas!
bonne fin de soirée à toi
 

Gorfael

XLDnaute Barbatruc
Re : Valider cochage de plusieurs dizaines de checkbox

Bonsoir,

J'ai essayé de trouver mon bonheur sur le Forum Ecel avant d'écrire ce post, mais les problèmes exposés (et leurs solutions) sont nettement trop compliquées pour mon umble cas!

Je ne cherche pas à, en cochant une checkbox, recopier la données dans une feuille, ni filtrer des réponses... mais juste à savoir si la checkbox a bien été cochée!

Le cas concret : faire une feuille excel de réconcialiation bancaire (pointage des comptes) avec : un intitulé, un montant et une case à cocher. Si la case est cochée, en fermant Excel, une boite de dialogue remercie l'utilisateur. Si ce n'est pas le cas, elle lui signifie que des cases n'ont pas été cochées;

J'ai pensé à un code du genre :

If Caseàcocher1.Value = True Then
MsgBox "La vérification des comptes a été renseignées avec succés"
Etc...
End If

Mais je dois le faire pour des dizaines et des dizaines d'intitulés. Est ce qu'il y a un moyen de faire faire le "travail" à un seul code, sans avoir à en créer un pour chaque checkbox?

Je sais pas trop si cette demande est lumineuse..mais si vous avez des questions, n'hesitez pas (c'est moi qui demande de l'aide,normal que je donne les infos nécessaire, non?).

Merci de vos pistes, dans tous les cas.
bonne soirée
Salut
Après quelques élucubrations, une proposition
A+
 

Pièces jointes

  • Controles formulaires.xls
    23 KB · Affichages: 135

chris

XLDnaute Barbatruc
Re : Valider cochage de plusieurs dizaines de checkbox

Bonjour

Un code de Gaetan Mourman qui permet de faire de fausses cases à cocher dans les cellules :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Teste si la cellule ayant recu un double-clic fait partie de la plage bd_present
'Cette plage a été définie de manière dynamique à l'aide de la fonction suivante :
' =DECALER(Feuil1!$B$2;;;NBVAL(Feuil1!$A:$A)-1)
'Voir le menu Insertion - Nom - Définir
If Not (Intersect(Target, Range("bd_present")) Is Nothing) Then
'Mise en forme de la cellule
Target.Font.Name = "Wingdings"
Target.HorizontalAlignment = xlCenter
'Empêche la sélection de la cellule après le double-clic
Cancel = True
'Teste de la valeur de la cellule et inverse la case à cocher
Target.Value = inverse(Target.Value)
End If
End Sub

Function inverse(cible As String)
'Nouvelle fonction qui met une croix pour une case vide
'et une case vide pour une croix
If cible = "o" Then
inverse = "ý"
ElseIf cible = "ý" Then
inverse = "o"
Else: inverse = ""
End If
End Function

Si tu valorises ainsi les cellules, un simple comptage du nombre de
ý dans la plage te permet de savoir si tu en as autant que de cellule.

Tu peux bien sûr utiliser d'autres caractères.
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : Valider cochage de plusieurs dizaines de checkbox

Re-,
Bonsoir, Chris et Gorfael
un autre fichier, en fonction de la provenance de tes CheckBoxes, soit BO Contrôles, soit BO Formulaire, soit USF
 

Pièces jointes

  • gacastex.zip
    17.9 KB · Affichages: 65
  • gacastex.zip
    17.9 KB · Affichages: 60
  • gacastex.zip
    17.9 KB · Affichages: 63

gacastex

XLDnaute Nouveau
Re : Valider cochage de plusieurs dizaines de checkbox

Bonjour Gorfael, Chris, BhBh, le forum,

merci pour vos propositions! je regarde ça de suite, mais je ne doute pas que je vais trouver mon bonheur là dedans!

A plus tard et encore merci!
 

gacastex

XLDnaute Nouveau
Re : Valider cochage de plusieurs dizaines de checkbox

Re bonjour à tous!

Un grand merci à BhBh pour son aide, parce qu'il m'a proposé exactement ce que je cherchais à faire (et c'est pas la première fois, cf mes soucis passés avec des userform, des listbox, etc.). Donc, encore une fière chandelle que je te dois!


Merci aussi à Gorfael; je vais pas utiliser ce code dans l'application présente, mais pour une autre (gestion des stocks de sécurité) sous peu. Donc, tes "élucubrations" vont me servir!

Et merci a Chris pour le code communiqué; je ne l'ai pas encore testé, je vais le faire dans la journée.


merci pour votre aie!
A plus tard

GaCastex
 

gacastex

XLDnaute Nouveau
Re : Valider cochage de plusieurs dizaines de checkbox

Re-bonjour à tous...je reviens à la charge!

Avec vos conseils respectifs (plus tout ce que j'ai pu trouver sur le forum), je suis arrivé à faire ce que je voulais.

mais problème : quand je ferme le document, un MsgBox m'informe que des données n'ont pas été cochées; or, ce message s'affiche autant de fois que j'ai de cases décochées! par exemple, si, sur 20 intitulés de dépenses, seulement 10 ont été pointés, j'ai droit à 10 MsgBox d'affilée avant de pouvoir fermer!

J'ai bidouillé les codes trouvés ou donnés, mais j'ai pas du bien adapter le truc..
je vou mets le dit-fichier en pièce jointe, si vous avez le temps d'y jeter un oeil.

Merci encore...on y arrive!
Bonne aprem'
 

Pièces jointes

  • 1.0.zip
    17.8 KB · Affichages: 55
  • 1.0.zip
    17.8 KB · Affichages: 60
  • 1.0.zip
    17.8 KB · Affichages: 55

Cousinhub

XLDnaute Barbatruc
Inactif
Re : Valider cochage de plusieurs dizaines de checkbox

Bonsoir, et excuse du retard,
rajoute quelques lignes :

Sub BoutonVal_QuandClic()
With ActiveSheet
For Each cb In .OLEObjects
If cb.Name Like "CheckBox*" Then
If .OLEObjects(cb.Name).Object.Value = False Then
varReponse = MsgBox("Voulez-vous les pointer ULTERIEUREMENT?", vbYesNo, "DES DEPENSES/RECETTES N'ONT PAS ETE POINTEES!!!")
If varReponse = vbNo Then
MsgBox "Merci de cocher les dépenses/recettes pointées": Exit Sub
Else: ThisWorkbook.Save: ThisWorkbook.Close '<===ICI
End If
End If
End If
Next
ThisWorkbook.Close
End With
End Sub
 

gacastex

XLDnaute Nouveau
Re : Valider cochage de plusieurs dizaines de checkbox

Yeeeeees!

Merci BhBh! t'inquietes pas pour le délai, on est pas aux pièces...
Le code fonctionne nickel; j'en ai terminé avec ce taf. tu viens d'y mettre la touche finale!

Merci encore..
..et sans doute à bientôt pour de nouvelles questions (de ma part)

bonne journée!
 

Discussions similaires

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA