Feuilles présence : remplir case en cliquant

Résolu
kathekat33 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
kathekat33 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > kathekat33 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   38
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci, je garde précieusement le code, il me servira bientôt.
0
titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   38
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   38
 
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   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > kathekat33 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > kathekat33 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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