![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: août 2007
Messages: 20
|
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 |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: juin 2007
Version Excel : Excel 2003 (PC)
Messages: 2 897
|
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 |
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: août 2007
Messages: 20
|
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 |
|
|
|
|
|
#4 (permalink) | |
|
XLDnaute Accro
Date d'inscription: avril 2006
Localisation: Basse Goulaine
Version Excel : Excel 2003 (PC)
Messages: 1 408
|
Citation:
Après quelques élucubrations, une proposition A+ |
|
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Accro
Date d'inscription: février 2005
Localisation: yvelines
Version Excel : Excel XP (PC)
Messages: 1 860
|
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.
__________________
Chris |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: juin 2007
Version Excel : Excel 2003 (PC)
Messages: 2 897
|
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 |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: août 2007
Messages: 20
|
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! |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: août 2007
Messages: 20
|
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 |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: août 2007
Messages: 20
|
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' |
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: juin 2007
Version Excel : Excel 2003 (PC)
Messages: 2 897
|
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 |
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: août 2007
Messages: 20
|
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! |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Checkbox et cochage | belette | Forum Excel | 17 | 06/06/2006 16h25 |
| arrondi sup sur les unités et non les dizaines | BAT | Forum Excel | 6 | 03/03/2006 15h01 |
| Création de lien texte entre fichier par cochage. | Nagrom | Forum Excel | 30 | 25/08/2005 15h34 |
| plusieurs checkbox comment vérif que une seule est cochée ?? | zorg | Forum Excel Downloads - Archives | 4 | 22/10/2004 10h02 |
| plusieurs questions avant de valider la reponse | rem$ | Forum Excel Downloads - Archives | 3 | 22/09/2004 17h50 |