Comment obliger les salarié à remplir certaine données

Résolu
csc92 Messages postés 11 Statut Membre -  
csc92 Messages postés 11 Statut Membre -
Bonjour,

J'ai fait une feuille de suivi des jours travaillés pour les salariés cadre au forfait jour.

Et je souhaiterais savoir comment faire pour obliger les salariés à remplir les trois listes déroulantes du bilan mensuel en bas de la page.

De plus s'il remplissent par non ils sont obligés de mettre le motif juste en dessous dans la case prévu à cet effet.

Si ces deux conditions ne sont pas respectées alors ils ne peuvent pas imprimer la page.

Cela est-il possible?

Je vous joins le fichier concerné

https://www.cjoint.com/c/GJEqHrieRXM

Merci d'avance à ceux qui pourront m'aider.

2 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    à mettre dans thisworkbook :
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        Const msg  As String = "Impression annulée, bilan mensuel incomplet dans "
        Dim feuille As Worksheet
        
        For Each feuille In ThisWorkbook.Windows(1).SelectedSheets
            With feuille
                If .[A44] = "Bilan mensuel à remplir par le salarié :" Then
                    If Application.CountA(Union(.[D47], .[A51], .[A55])) <> 3 Then
                        Cancel = True
                        MsgBox msg & feuille.Name
                        Exit Sub
                    Else
                        If (LCase(.[D47] = "non") And .[B48] = "") Or (LCase(.[D51] = "non") And .[B52] = "") Or (LCase(.[D55] = "non") And .[B56] = "") Then
                            Cancel = True
                            MsgBox msg & feuille.Name
                            Exit Sub
                        End If
                    End If
                End If
            End With
        Next feuille
    End Sub 


    J'ai prévu le contrôle de toutes les feuilles sélectionnées en cas de sélection multiple.
    Par contre si le choix est imprimer tout le classeur ça sortira. J'ai supposé qu'il pouvait y avoir des feuilles prêtes d'avance et par conséquent non remplies.
    Si besoin complète en testant toutes les feuilles.
    eric
    1
    1. csc92 Messages postés 11 Statut Membre
       
      bonjour Eriiic,

      Merci pour ta réponse rapide.

      Mais je ne sait pas ou mettre cela.
      Peux-tu m'expliquer stp.
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      Alt+F11 pour aller dans VBE.
      Double-clic dans ThisWorkbook de ton projet et y coller le code.
      eric
      0
    3. csc92 Messages postés 11 Statut Membre > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Super merci beaucoup mon problème est résolu
      0
    4. csc92 Messages postés 11 Statut Membre > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Re bonjour,

      Au final je me rend compte que j'ai toujours un problème.

      En effet si le salarié ne renseigne pas toutes les questions il peut quand même imprimer.
      Je souhaiterais qu'il soit obligé de dire oui ou non dans chacune des questions (et si non obligé de mettre le motifs)

      Actuellement s'il en rempli 1 ou 2 il peut imprimer alors qu'il doit être obligé de remplir les 3.

      Merci
      0
    5. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      Ah oui. Un oubli de modification suite à un copié-collé.
      Remplace :
      If Application.CountA(Union(.[D47], .[A51], .[A55])) <> 3 Then

      par :
      If Application.CountA(Range("D47,D51,D55")) <> 3 Then

      qui est sur les bonnes cellules.
      eric
      0
  2. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     
    Par expérience, je peux te garantir que la méthode de loin la plus efficace est de ne pas leur verser leur salaire tant que la fiche n'est pas correctement remplie : C'est radical ! Au bout de 2 mois de ce régime, les documents arrivent dans les délais, remplis, commentés et signés ...
    0