Ajouter automatiquement des cases à cocher

Papayoulélé

XLDnaute Nouveau
Bonsoir tout le monde,


Je ne suis pas un expert en VBA, même si ce langage me fascine par l'étendu de ses capacités. J'ai écumé les sites à la recherche d'une solution à ma recherche.
Je vous explique, pour mon travail j'aurais besoin de pouvoir ajouter automatiquement des cases à cocher dans un tableau excel d'horaire. Mon équipe a des horaires irréguliers et ces cases à cocher, permettront une fois activé, de spécifier que l'horaire indiqué a été fait de nuit et donc lors du report de ces heures dans le tableau suivant, un pourcentage de majoration apparaîtra sur la ligne concernée.
A chaque mois, une feuille supplémentaire se crée avec un nouveau tableau d'horaire, d'où le besoin que ces cases à cocher se réactivent automatiquement sur la nouvelle feuille.
J'ai trouvé grâce à l'aide d'un internaute une partie de ma solution, sauf que j'aimerais qu'il n'y ait de cases à cocher que sous les jours existants, à savoir pas 31 cases pour les mois de 30 ou de 28 jours par exemple.
Je joins à ma demande l'avancement de mes recherches en espérant pouvoir trouver le chaînon manquant.
Merci d'avance pour toute vos suggestions.
Papayou
 

Fichiers joints

Modeste geedee

XLDnaute Barbatruc
1-Je ne suis pas un expert en VBA,
2- j'aurais besoin de pouvoir spécifier que l'horaire indiqué a été fait de nuit
3-sauf que j'aimerais qu'il n'y ait de cases à cocher que sous les jours existants, à savoir pas 31 cases pour les mois de 30 ou de 28 jours par exemple.

Papayou
pourquoi alors des cases à cocher ???
une proc événementielle (clic droit) affichant ou non un "N" suffirait ...
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Row = 5 _
And Target.Column >= 3 _
And Target.Column <= 33 Then
        If Target.Offset(-2, 0) <> "" And Target.Value = "" Then Target = "N" Else Target = ""
       Cancel = True
End If
End Sub
upload_2018-12-6_23-15-2.png
 

Fichiers joints

Dernière édition:

Papayoulélé

XLDnaute Nouveau
Bonsoir Modeste,

En effet pourquoi des cases à cocher? Je crois que je voulais rendre les choses un peu esthétiques.
Ton idée est très bien merci. Le fichier que tu as joins renvoi des valeurs bizarres, mais je suis certain que cela pourrait fonctionner parfaitement dans le fichier du travail.

Merci encore et bonne soirée
 

ChTi160

XLDnaute Barbatruc
Bonsoir Papayoulélé
Bonsoir le Fil ,le Forum
une autre approche qui évite la répétition du Code pour Chaque Feuille (Code à mettre dans le module ThisWorkBook)
VB:
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Sh.Name Like "* ????" Then 'selon le format du Nom de la Feuille (Sh)s'il contient du Texte plus le format Année quatre Chiffres [I]Jan 2018 ou Janvier 2018[/I]
With Target 'avec la cellule concerné
    If .Row = 5 And .Column >= 3 And .Column <= 33 Then 'si Ligne de la cellule est la 5 et la colonne de la cellule est comprise entre 3 et 33
            If .Offset(-2, 0) <> "" Then 'si la cellule de la deuxième Ligne au dessus de la cellule Cible n'est pas vide
               .Value = IIf(.Value = "N", "", "N") 'on modifie le contenu de la cellule
            End If
               Cancel = True
    End If
End With
End If
End Sub
jean marie
 

Papayoulélé

XLDnaute Nouveau
Bonjour ChTi160,

Vraiment désolé de ne pas avoir répondu de suite, mais j'étais sous l'eau avec le travail.
Je vais tester ton conseil et te ferai savoir, j'espère avant l'année prochaine.
En attendant, dans le doute de ne as y arriver avant, je souhaite à tous les participants du site de joyeuses fêtes.

Papayou
 

Discussions similaires


Haut Bas