Comment obliger les salarié à remplir certaine données

Résolu/Fermé
csc92 Messages postés 11 Date d'inscription vendredi 27 octobre 2017 Statut Membre Dernière intervention 31 octobre 2017 - 30 oct. 2017 à 17:34
csc92 Messages postés 11 Date d'inscription vendredi 27 octobre 2017 Statut Membre Dernière intervention 31 octobre 2017 - 31 oct. 2017 à 15:51
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.
A voir également:

2 réponses

eriiic Messages postés 24599 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 octobre 2024 7 236
30 oct. 2017 à 18:20
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
csc92 Messages postés 11 Date d'inscription vendredi 27 octobre 2017 Statut Membre Dernière intervention 31 octobre 2017
31 oct. 2017 à 08:13
bonjour Eriiic,

Merci pour ta réponse rapide.

Mais je ne sait pas ou mettre cela.
Peux-tu m'expliquer stp.
0
eriiic Messages postés 24599 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 octobre 2024 7 236
31 oct. 2017 à 09:23
Bonjour,

Alt+F11 pour aller dans VBE.
Double-clic dans ThisWorkbook de ton projet et y coller le code.
eric
0
csc92 Messages postés 11 Date d'inscription vendredi 27 octobre 2017 Statut Membre Dernière intervention 31 octobre 2017 > eriiic Messages postés 24599 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 octobre 2024
31 oct. 2017 à 10:06
Super merci beaucoup mon problème est résolu
0
csc92 Messages postés 11 Date d'inscription vendredi 27 octobre 2017 Statut Membre Dernière intervention 31 octobre 2017 > eriiic Messages postés 24599 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 octobre 2024
31 oct. 2017 à 10:26
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
eriiic Messages postés 24599 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 octobre 2024 7 236
Modifié le 31 oct. 2017 à 11:43
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
Raymond PENTIER Messages postés 58693 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 15 octobre 2024 17 211
30 oct. 2017 à 17:41
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