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 -
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
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
A voir également:
- Feuilles présence : remplir case en cliquant
- Comment faire un livret avec des feuilles a4 - Guide
- Bruler des feuilles de laurier - Guide
- Presence en ligne instagram - Guide
- Fusionner feuilles excel - Guide
- Sandra a décidé de mieux contrôler son image et sa présence sur différents réseaux sociaux. qu’est-il possible de faire sur ces réseaux ? - Forum Facebook
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 ?
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 ?
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..
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.
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
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
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 :
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
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
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).
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 :
Bonne soirée
Jc
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question