XL 2021 Insérer une heure avec bouton sur une feuille de pointage

Florian79800

XLDnaute Nouveau
Bonjour
Je suis novice sur excel. Je dois créer un fiche de pointage pour mon association.
J'ai réalisé une feuille de pointage (Voir photo)
Je souhaiterais insérer heure dans la cellule avec le bouton en fonction du jour sélectionné.
Et que ces cases ne soit pas modifiables
Je sais pas si c'est possible.
 

Pièces jointes

  • 20230601_170831.jpg
    20230601_170831.jpg
    566.4 KB · Affichages: 28

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Florian, et bienvenu sur XLD,
Une image c'est joli, mais pour donner une solution .....
Vous n'auriez pas un petit fichier test, par hasard ?

Alors au pif, à vous d'adapter à votre fichier avec cette macro :
VB:
Sub InsereHeure()
    Colonne = Val(Right(Application.Caller, 1)) ' Le N° du bouton correspond à la colonne où insérer
    On Error GoTo Fin                           ' Si date non trouvée alors message erreur
    Ligne = Application.Match([F2], [A:A], 0)   ' La date est sur quelle ligne
    Cells(Ligne, Colonne) = Time                ' Insérer le temps
Exit Sub
Fin:
    MsgBox "Date non trouvée."
End Sub
 

Pièces jointes

  • Florian.xlsm
    17.7 KB · Affichages: 10
Dernière édition:

Florian79800

XLDnaute Nouveau
Bonjour Florian, et bienvenu sur XLD,
Une image c'est joli, mais pour donner une solution .....
Vous n'auriez pas un petit fichier test, par hasard ?

Alors au pif, à vous d'adapter à votre fichier avec cette macro :
VB:
Sub InsereHeure()
    Colonne = Val(Right(Application.Caller, 1)) ' Le N° du bouton correspond à la colonne où insérer
    On Error GoTo Fin                           ' Si date non trouvée alors message erreur
    Ligne = Application.Match([F2], [A:A], 0)   ' La date est sur quelle ligne
    Cells(Ligne, Colonne) = Time                ' Insérer le temps
Exit Sub
Fin:
    MsgBox "Date non trouvée."
End Sub
Bonjour

je vous remercie pour votre reponse mais je n'ai pas reussi à le mettre.
je vous envoie ci-joint un classeur test.

je souhaitai creer un boouton pour mettre l'heure en fonction de la date et de bloquer les cellules suite a la rentrée de l'heure. avec possibilité de modifier cette cellule avec un mot passe.
je sais pas si je suis assez claire.

Mais j'espere que vous pourriez m'aider.

je vous remercie
 

Pièces jointes

  • test.xlsm
    15.2 KB · Affichages: 2
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Florian,
La prochaine fois mettez dès le post #1 le fichier et l'ensemble des specs ( comme la protection par ex ), cela évite le rework. :)
je vous remercie pour votre reponse mais je n'ai pas reussi à le mettre.
Je ne comprend pas votre approche :
1- Il n'y a pas de code
2- Les boutons n'ont pas le bon nom
3- Avec votre méthode le jour courant est toujours en première ligne, ce qui me semble bizarre car si vous changer la date les données ne changeant pas, elles deviendront fausses car affectées au jour où elles ont été écrites.
A mes yeux le planning ne devrait pas bouger et ce sont les écritures qui devraient changer de lignes.
exactement comme vous le demandiez :
Je souhaiterais insérer heure dans la cellule avec le bouton en fonction du jour sélectionné.
Bref, en PJ votre fichier avec :
VB:
Sub InsereHeure()
    MotDePasse = "1234"                         ' Mot de passe à modifier
    ActiveSheet.Unprotect Password:=MotDePasse
    Colonne = Val(Right(Application.Caller, 1)) ' Le N° du bouton correspond à la colonne où insérer
    On Error GoTo Fin                           ' Si date non trouvée alors message erreur
    Ligne = Application.Match([G7], [B:B], 0)   ' La date est sur quelle ligne
    Cells(Ligne, Colonne) = Time                ' Insérer le temps
    ActiveSheet.Protect Password:=MotDePasse
Exit Sub
Fin:
    MsgBox "Date non trouvée ou feuille protégée."
    ActiveSheet.Protect Password:=MotDePasse
End Sub
A vous de l'adapter pour la suite.
 

Pièces jointes

  • test (2).xlsm
    20.9 KB · Affichages: 23

Florian79800

XLDnaute Nouveau
Bonjour Florian,
La prochaine fois mettez dès le post #1 le fichier et l'ensemble des specs ( comme la protection par ex ), cela évite le rework. :)

Je ne comprend pas votre approche :
1- Il n'y a pas de code
2- Les boutons n'ont pas le bon nom
3- Avec votre méthode le jour courant est toujours en première ligne, ce qui me semble bizarre car si vous changer la date les données ne changeant pas, elles deviendront fausses car affectées au jour où elles ont été écrites.
A mes yeux le planning ne devrait pas bouger et ce sont les écritures qui devraient changer de lignes.
exactement comme vous le demandiez :

Bref, en PJ votre fichier avec :
VB:
Sub InsereHeure()
    MotDePasse = "1234"                         ' Mot de passe à modifier
    ActiveSheet.Unprotect Password:=MotDePasse
    Colonne = Val(Right(Application.Caller, 1)) ' Le N° du bouton correspond à la colonne où insérer
    On Error GoTo Fin                           ' Si date non trouvée alors message erreur
    Ligne = Application.Match([G7], [B:B], 0)   ' La date est sur quelle ligne
    Cells(Ligne, Colonne) = Time                ' Insérer le temps
    ActiveSheet.Protect Password:=MotDePasse
Exit Sub
Fin:
    MsgBox "Date non trouvée ou feuille protégée."
    ActiveSheet.Protect Password:=MotDePasse
End Sub
A vous de l'adapter pour la suite.
Bonjour

Désolé de te déranger encore.
Mais Est-ce que tu crois qu'on peut bloquer les cellules de remplissage (Colonne C,D,F,G) en fonction de la date (Cellule G7) avec mot de passe.
Pour éviter que la personne ne puisse modifier l'heure inscrite sur la cellule. Sauf si il l'a le mot de passe.
Par exemple:
Le 02/06/2023, si on clique sur le bouton "entrée", l'heure s'affiche sur la colonne C. Et je voudrais qu'elle se bloque des qu'il y a la valeur dans la cellule.
Tu penses que c'est possible?
Je te remercie
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Vous ne répondez pas aux questions ?
Avec votre méthode le jour courant est toujours en première ligne, ce qui me semble bizarre car si vous changer la date les données ne changeant pas, elles deviendront fausses car affectées au jour où elles ont été écrites.
Tel qu'il est fait votre outil ne peut pas marcher. Voici pourquoi :
1- Je rentre des horaires à un jour donné :
1685779450355.png

2- Je change de date :
1685779517436.png

Résultat :
1- Les horaires restent en place donc affectés au mauvais jour ( 15 janvier au lieu du 6. )
2- Les horaires affectés au 6 janvier sont perdus.

Tu penses que c'est possible?
Quel intérêt de modifier si de base votre outil est erroné ?

Demandez vous pourquoi dans ma PJ du post #2 les données sont agencées ainsi.
1685779750558.png
 

Florian79800

XLDnaute Nouveau
Bonjour
En faite j'essaye de créer une feuille de pointage par mois pour mon association qui comporte une dizaine de salariés.
Avec possibilité de remplir chaque jour avec les heures grâce aux boutons ( En bleu) et que celle-ci ne soit pas modifiables sauf avec mot de passe.

1685779450355.png
Comme je vous ai expliqué je suis novice dans excel et le langage vba.
Le cellule date mois année était pour nous faciliter à avoir le mois de travail en visuel et de le modifier chaque mois
Donc peut-être que ma feuille et mes codes ne sont pas bons.
Cette feuille sera imprimée tous les mois pour vérifier les heures effectuées et remis a zéro tous les mois. Un peu comme une pointeuse sauf pas possible pour nous de prendre une pointeuse. Donc on essaye de faire avec un tableau Excel. Et que les personnes puissent regarder le tableau et voir le nombre heure effectuées sur le mois.
Je vous remercie déjà pour les remarques et l'aide que vous m'avez apporté.
 

Discussions similaires

Réponses
8
Affichages
393

Statistiques des forums

Discussions
314 750
Messages
2 112 475
Membres
111 561
dernier inscrit
PIERRE006