Plan de charge d'une équipe BE pour plusieurs chantiers

Effectivement j'avais mal lu !! maintenant ça fonctionne.

Mais dans votre exemple, vous avez date de départ 31/08 et Deadline 31/08 avec 0 comme Durée. Là vous devriez avoir 1 non ?Et oui il devrait y avoir le nombre 1

Et oui il devrait y avoir le nombre 1

heu non en fait parce que le 31/08 est un jour férié. Donc normal que la durée soit nulle


Refaites un test en remplaçant tout le code par celui ci-dessous

Sub couleur(ligne As Integer) 'ajouter la couleur
Dim dcol As Integer, col As Integer
Dim cel As Range

With ActiveSheet

    dcol = .Cells(11, Columns.Count).End(xlToLeft).Column

    Call effacer_couleur(ligne, dcol) 'appel du code effacer couleur

    For Each cel In .Range(.Cells(11, 13), .Cells(11, dcol)) 'recherche premiere colonne
        If CLng(cel.Value) >= CLng(.Range("H" & ligne).Value) Then col = cel.Column: Exit For
    Next cel

    If col = 0 Then Exit Sub

    If .Range("I" & ligne) <> 0 Then 'mise en couleur
        While CLng(.Cells(11, col)) <= CLng(.Range("J" & ligne)) And .Cells(11, col) <> ""
            If i = True Then
                .Cells(ligne, col).Interior.Color = RGB(77, 111, 121)
            Else:
                .Cells(ligne, col).Interior.Color = .Range("E" & ligne).Font.Color
            End If
            col = col + 1
        Wend
    End If
End With
End Sub

Bonjour,

J'ai modifier le code et j'ai ce message d'erreur, quand je clique sur OK la ligne Sub couleur (Ligne As Integer) se surligne en jaune.

image

Belle journée à vous.

Bonjour

J'ai modifier le code et j'ai ce message d'erreur, quand je clique sur OK la ligne Sub couleur (Ligne As Integer) se surligne en jaune.

Quand je regarde votre image, vous n'avez pas supprimé le code Sub effacer_couleur(ligne As Integer, dcol As Integer) 'effacer la couleur ??

Vous devez avoir deux codes dans le module

Bonjour,

J'ai remis le second code dans le module, mais j'ai toujours le même message

image

Oups... , remplacez le code Sub effacer_couleur (.......) que vous avez remis ce matin par celui ci-dessous

Sub effacer_couleur(ligne As Integer, dcol As Integer) 'effacer la couleur
With ActiveSheet
    .Range(.Cells(ligne, 13), .Cells(ligne, dcol)).Interior.Color = xlNone
End With
End Sub

En fait, il faut enlever l'instruction "col as integer" dans la première ligne.

Désolé...

J'ai procédé à la modification et maintenant j'ai ce message d'erreur

image

Attention que votre code effacer_couleur que vous me montrez n'est pas correct par rapport à ce que je vous ai posté
Dans ce code effacer_couleur, la variable COL n'existe plus. Elle est remplacée par le chiffre 13

Le code sub couleur_ligne n'est pas identique à celui donné ici --> https://forum.excel-pratique.com/s/goto/1247667


Il faudrait que vous disiez ce que vous faites pour que je reproduise l'erreur.

Exemple le fichier que j'ai :
en H20 j'ai 07/03/25
en J20 j'ai 20/05/25

Je change E20 et choisissant Anthony.
On a bien la couleur qui va de M20 à U20

C'est bon ça fonctionne, par contre il faut juste que je rentre les dates avant de saisir la personne qui doit faire la tâche sinon j'ai un message d'erreur.

Est ce que vous pourriez m'aider sur la formule concernant le calcul sur la durée. J'ai juste un petit souci quand la date est supérieure à la date du jour du coup il me calcule de la date du jour à la deadline.

J'aimerais pour cette formule que la nombre de jour ouvrés se calcul :

1° si la date de départ est inférieure à la date du jour et que la deadline est supérieure à la date du jour = nombre de jour ouvré entre la date du jour à la deadline

2° si la date de départ est supérieure à la date du jour et que la deadline est supérieure à la date du jour = nombre de jour ouvré entre la date de départ et la deadline

3° si la date de départ et la deadline est inférieure à la date du jour = 0.

C'est bon ça fonctionne, par contre il faut juste que je rentre les dates avant de saisir la personne qui doit faire la tâche sinon j'ai un message d'erreur.

Oui mais vous faire ceci -->
- allez dans le code sub couleur_ligne
- A la ligne --> If .Range("I" & ligne) <> 0 Then 'mise en couleur, remplacez le 0 par ceci --> VbNullstring

Après faites quelques tests dans les différentes situations (cellule vide, 0, ...)


Je regarde pour la formule mais vous parlez bien de la colonne I dans la feuille Plan Projet ?

J'ai remplacer la valeur 0 par VbNullstring et cela fonctionne

Oui c'est bien la formule dans la colonne I

Bonjour,

Essayez cette formule en H14 --> =SI(ET(H14<AUJOURDHUI();J14>AUJOURDHUI());NB.JOURS.OUVRES(AUJOURDHUI();J14);SI(ET(H14>AUJOURDHUI();J14>AUJOURDHUI());NB.JOURS.OUVRES(H14;J14);SI(ET(H14<AUJOURDHUI();J14<AUJOURDHUI());0)))

Pour l'instant je n'ai pas inclus la formule Sierreur afin de voir si cette formule fonctionne

Si souci ce serait bien de me donner un exemple de choix de dates et la valeur attendue pour les 3 cas

Bonjour,

La formule est parfaite !

Merci beaucoup.

Belle journée à vous.

Bonjour

Merci du retour.

Si tout est ok et terminé, pensez à cloturer le fil

Cordialement

Rechercher des sujets similaires à "plan charge equipe chantiers"