Feuilles présence : remplir case en cliquant

Résolu/Fermé
kathekat33 Messages postés 15 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 8 octobre 2018 - 16 sept. 2018 à 12:53
kathekat33 Messages postés 15 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 8 octobre 2018 - 19 sept. 2018 à 12:32
Bonjour,
Je gère sur Excel 2010 les feuilles de présence des adhérents de plusieurs clubs sportifs. J'ai un classeur constitué d'une feuille d'inscription, de feuilles de totaux trimestrielles, et surtout de feuilles mensuelles constituées des noms des adhérents sur les lignes et des jours du mois dans les colonnes, qui sont toutes liées les unes aux autres. Pour çà pas de souci.
Je souhaite pouvoir remplir la case correspondante avec un "1" simplement en cliquant dessus, de façon à ce que mes totaux se fassent automatiquement. Actuellement, je mets un "1" manuellement dans chaque case concernée. J'aurai aimé gagner un peu de temps.
Si il est possible de faire çà, j'aimerai qu'on me donne la solution en l'expliquant simplement, je ne suis pas une spécialiste.
Merci d' avance

6 réponses

yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024 Ambassadeur 1 533
Modifié le 16 sept. 2018 à 13:30
bonjour, il est probablement assez simple de réaliser cela en VBA.
pourrais-tu partager ton fichier (avec des données bidon)? ce serait probablement plus simple de t'expliquer sur un cas concret. sinon, je pourrais-te donner un exemple, à toi de l'adapter à ton fichier.
que devrait-il se passer si le 1 est déjà présent: rien, le supprimer, le remplacer par un 0 ?
1
kathekat33 Messages postés 15 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 8 octobre 2018
16 sept. 2018 à 20:30
Merci de ta rapidité. Actuellement je mets un 1 à chaque présence d'un sportif à un cours. En fin de mois, le total se fait donc tout seul. C'est la donnée dont j'ai besoin tout au long de l'année. J'ai préparé un fichier vierge pour le partager, mais je ne vois pas comment faire..
0
yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024 1 533 > kathekat33 Messages postés 15 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 8 octobre 2018
16 sept. 2018 à 20:44
pour partager ton fichier: tu le mets à disposition sur internet (google drive, cjoint.com, ...) puis tu partages ici le lien vers le fichier.
0
titeufdu89 Messages postés 374 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
16 sept. 2018 à 22:06
Pour appliquer cette formule a d'autres feuille tu copies et colles le code dans l'interface VBA des feuilles en question. Comme tu as fait pour la première feuille, le code reste identique si tes feuilles sont identiques.
Il n'est pas possible de lancer une macro sur un seul clic, et une chance... imagine toi, tu ne pourrais plus sélectionner une cellule sans un changer la valeur, ce serait extrêmement problématique... :-s
1
yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024 1 533
16 sept. 2018 à 22:27
pour faire la même chose en un clic plutôt qu'en deux:
remplacer
Worksheet_BeforeDoubleClick

par
Worksheet_SelectionChange
0
kathekat33 Messages postés 15 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 8 octobre 2018 > yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024
16 sept. 2018 à 22:47
Merci, je garde précieusement le code, il me servira bientôt.
0
titeufdu89 Messages postés 374 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
16 sept. 2018 à 20:41
Bonjour,

Voici une code vba qui après double clic ajoutera un 1 dans la cellule concernée dès lors que le clic est effectué dans la colonne programmée dans le code (permet d'éviter qu'un double clic malencontreux ne modifie la valeur de tes autres cellules en 1).
Pour commencer, enregistre-sous ton document au format XLSM (prenant en charge les macros)

Si tu ne maitrises pas le VBA il faut d'abord afficher l'onglet "développeur" dans ton Excel, pour ce faire suis la procédure ci-dessous :
Cliquez sur l'onglet Fichier.
Cliquez sur Options.
Cliquez sur Personnaliser le ruban.
Sous Personnaliser le ruban et Onglets principaux, activez la case à cocher Développeur.

Une fois l'onglet Developpeur affiché, clique dans ce même onglet sur "Visual Basic".
Dans la fenêtre qui s'ouvre dans la fenêtre "Projet - VBA Project" (a gauche de ton écran) double clique sur la nom de la feuille concernée et colle le code ci-dessous dans la fenêtre qui se sera ouverte (cf image ci-contre) puis remplace le 2 du code actuel par le numéro de la colonne dans laquelle tu souhaites que les 1 s'ajoutent.



Voici le code à coller :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
    If Target.Column = 2 Then '<< remplace le 2 par le numéro de colonne où tu souhaites ajouter les 1 (ex: si il s'agit de la colonne C saisir 3)
    Target.Cells.Value = 1
    End If
End Sub


Ferme l'interface VBA, enregistre ton fichier et pour tester la macro, sur la feuille de ton classeur en question, double-clic sur une cellule de la colonne programmée. Un 1 devrait alors s'afficher.

J'espère que mes explications auront été assez claires
Bonne journée

Jc
0
kathekat33 Messages postés 15 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 8 octobre 2018
16 sept. 2018 à 21:03
super Titeufdu89. çà marche ! Je vais abuser encore un peu en demandant comment je peux appliquer la macro à un groupe de colonnes ( les 31 jours du mois).
0
titeufdu89 Messages postés 374 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
16 sept. 2018 à 21:19
Si tes colonnes sont contigues tu peux remplacer :
If Target.Column = 2 Then
par
If Target.Column >= x and target.column <= y Then
en remplaçant "x" par le numéro de colonne du 1er jour du mois et "y" par le numéro de colonne du 31

En revanche si elles ne sont pas contigues, utilise le code suivant :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
    Select Case Target.Column
    Case 2, 4, 6, 8 '< liste les coordonnées de colonnes concernées
    Target.Cells.Value = 1
    End Select
    
End Sub


Bonne soirée

Jc
0
kathekat33 Messages postés 15 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 8 octobre 2018
17 sept. 2018 à 20:58
Bonsoir,
Ta macro marche super bien; J'ai tout mis en route, l' année va être super. J'ai essayé de la transposer dans un autre classeur en essayant d' écrire un X au doubleclick mais çà ne marche pas, alors que çà fonctionne avec n'importe quel chiffre ...
0
yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024 1 533 > kathekat33 Messages postés 15 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 8 octobre 2018
17 sept. 2018 à 21:28
tu n'as pas expliqué comment tu avais fait pour le X: ainsi:
Target.Cells.Value = "X"
?
mets aussi "option explicit" en début de module.
0
kathekat33 Messages postés 15 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 8 octobre 2018 > yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024
17 sept. 2018 à 23:20
Bonsoir,
j'ai fait : Target.Cells.Value = X. Mais je n'ai pas mis de guillemets autour du X. C'est là le problème ?
0
yg_be Messages postés 23184 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 septembre 2024 1 533 > kathekat33 Messages postés 15 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 8 octobre 2018
18 sept. 2018 à 09:23
en effet. si tu avais ajouté "option explicit" en début de module, tu aurais eu un avertissement à ce sujet.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kathekat33 Messages postés 15 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 8 octobre 2018
16 sept. 2018 à 21:54
Merci Titeufdu89, c'est tout à fait ce que je voulais. Pour l' avenir, je voudrais savoir comment appliquer cette macro à plusieurs feuilles ( identiques) de mon classeur; Et pour ma culture perso, quelle est la commande pour le même type d' action avec un simple cli de la souris ?
0
kathekat33 Messages postés 15 Date d'inscription dimanche 16 septembre 2018 Statut Membre Dernière intervention 8 octobre 2018
16 sept. 2018 à 22:09
Merci pour tout, je sais ce que je voulais savoir, je suis en train de faire tout çà, ce sera un sacré gain de temps pour moi !
0