Voici mon problème du jour, sur une feuille excel ,j'ai besoin d'activer un bouton qu'entre le 20 et le 25 de chaque mois et le reste du temps il doit être désactiver.
J'ai réussi à l'activer en fonction d'une valeur dans une cellule, mais je bloque totalement avec la gestion des dates.
Si une personne pouvais me mettre sur la voie, je vous en serai reconnaissant.
Private Sub Workbook_Open()
If Day(Date) > 19 Or Day(Date) < 25 Then
Feuil1.CommandButton1.Enabled = False
Else
Feuil1.CommandButton1.Enabled = True
End If
End Sub
Vraiment un grand merci à tous.
Mais maintenant j'ai découvert un autre problème dans mon fichier, mais je sais pas si je dois créer une nouvelle discussion parce que le sujet est différent.
J'explique quand même (et si il le faut je référait un autre post).
Dans mon fichier (ci-joint) sur la feuille "Chantier" en colonne C, j'arrive à compter le nb de jours travailler sur un chantier (ça c'est bon)
Par contre je n'arrive pas (en colonne E) à compter juste le nb de ligne du tableau de la feuille "Modele" qui correspond à la lettre du chantier (exemple "A") ce qui me permettrai de connaitre le nb de personne qui on été travailler sur le dis chantier.
Bonjour Lone-wolf
Non c'est bien dans la colonne E que j'aimerai avoir ce résultat.
J'ai déjà essayer avec NB.SI mais ça ne donne pas le résultat attendu.
Dans l'onglet "MODELE" je rentre les heures et le chantier, dans l'exemple de fichier que j'ai donné (la réponse attendu en "chantier!E1" doit étre 2
Vu que 2 personnes ont travaillé sur ce chantier (par exemple)
Les chantiers sont A-B-C etc?? Parce-que moi je vois 1 A - 3 G - 1 F et 1 D dans la 1ère semaine, et 2 A - 4 G et 1 D pour la 2ème. Donc au total il y aurait 3 A - 7 G et 2 D.
Oui sur l'onglet "Chantier" j'ai mis des lettres (a,b,c....), ce que tu vois (1A-3G-1F-1D) c'est juste le lundi de la première semaine.
Ce que je cherche à avoir comme résultat : c'est le nombre d'ouvrier qui à travailler sur le mois entier, dans mon exemple le matricule 343 à travaillé tous les jours des deux premières semaines (donc 1 personne) et le matricule 338 à travaillé sur le chantier la deuxième semaine donc +1 personne = 2 personnes sur le chantier pour 18 jours de travail (ce que j'arrive à compter avec la formule en "Chantier!C2") et un total de 120 heures (ce que j'arrive aussi à compter en "Chantier!D2).
Pour compter le personnel intervenant sur un chantier utiliser cette fonction VBA :
Code:
Function ComptePersonnel(r As Range, lettre$)
For Each r In r.Rows
If Application.CountIf(r, lettre) Then ComptePersonnel = ComptePersonnel + 1
Next
End Function