Calcul amplitude suivant cellule remplies

Bonjour,

j'ai réalisé un tableau d'embauche sur lequel je souhaite connaitre les H travaillées et les amplitudes

a l'heure actuelle las colonne C comptabilise le nombre de cellule coloriées (ce n'est pas moi mais quelqu'un sur ce forum à mis en place le code via et la formule)

j'aimerais que la colonne D calcul l'amplitude de travail (différence entre la cellule coloriées la plus à droite et la cellule coloriée la plus à gauche)

est-ce possible?

par avance merci

13planning.xlsm (22.23 Ko)

Bonjour,

Essayez ceci:

Formule en D12:

=SIERREUR(Ampl(E12:AQ12;LIGNE());"")

Cdlt

Bonjour et merci pour votre réponse.

cependant le fichier ne semble pas fonctionner chez moi

il m'indique ce message à l'ouverture :

capture d ecran 2023 02 04 a 15 13 56

Si je clique sur oui il essaye de l'ouvrir plusieurs fois sans y arriver.

J'ai aussi repris mon fichier sur lequel j'ai avancé, et collé la formule en D12 mais rien ne se passe...

je vous remercie

J'ai aussi repris mon fichier sur lequel j'ai avancé, et collé la formule en D12 mais rien ne se passe...

Mais avez-vous récupéré et copié le code qui va avec dans le module VBA, à la suite de la fonction CountColor?

Function Ampl(Plage As Range, Ligne As Long) As Long
    Dim HeureDeb As Long, HeureFin   As Long, i As Long, DerCol As Long
    DerCol = Range("ZZ8").End(xlToLeft).Column
    For i = 6 To DerCol
        If HeureDeb = 0 Then
            If Cells(Ligne, i).Interior.ColorIndex <> xlNone Then
                If Cells(8, i) = "" Then
                    HeureDeb = Cells(8, i - 1)
                    GoTo Heure_Fin
                Else
                    HeureDeb = Cells(8, i)
                    GoTo Heure_Fin
                End If
            End If
        End If
    Next i
Heure_Fin:
    For i = DerCol To 6 Step -1
        If HeureFin = 0 Then
            If Cells(Ligne, i).Interior.ColorIndex <> xlNone Then
                If Cells(8, i) = "" Then
                    HeureFin = Cells(8, i - 1) + 1
                    Ampl = HeureFin - HeureDeb
                Else
                    HeureFin = Cells(8, i)
                    Ampl = HeureFin - HeureDeb
                End If
            End If
        End If
    Next i
End Function

Bonjour,

encore merci pour votre réponse rapide,

alors ne fait j'ai repris tout simplement le fichier que vous m'avez transféré, et celui ci ç un problème chez moi.

Je viens de reprendre mon fichier que j'ai modifié depuis, j'ai collé le code VBA, et ajouté la formule en D12. pour le coup il n'y a pas d'erreure mais le calcul ne se fait pas.

puis-je me permettre de vous joindre le fichier une nouvelle fois ?

je vous remercie infiniment

24planning-ampli.xlsm (24.20 Ko)

Bonjour,

J'ai compris où est l'erreur, vous avez 2 fois la fonction "Function CountCcolor" une dans le module "Thisworkbook" et l'autre dans le module standard "Module 1", et c'est de ce dernier auquel je me référais. donc déplacez la fonction "Ampl" vers ce module et tout fonctionnera.

Cdlt

effectivement cela fonctionne.

je ne saurais expliquer l'emplacement de cette macro

par contre celà ne fait le décompte uniquement pour des chiffres entier

si je travaille 0,5 h il me compte une amplitude de 0 au lieu de 0,5

si je travaille 3,5h il me compte une amplitude de 3h au lieu de 3,5

est-ce encore faisable ?

merci infiniment

Oui tout est faisable, c'est juste une question de interprétation, si la couleur commence sur une cellule vide (entre 9 et 10h par exemple) cela signifie que la prise de travail est à 9h30, et si la journée finie sur une cellule vide, par exemple entre 17h et 18h cela signifie que l'heure de fin est 17h30; ou bien l'heure de fin comprend les 17h intégralement? c'est là que les interprétations peuvent être différentes. Le problème doit se poser également pour le comptage des couleurs.

Remettez le fichier avec les cas de figures possibles et les résultats que vous attendez, et je reprendrai l'écriture du code.

entendu je comprends,

ceci dit je n'ai pas le soucis avec les heures travaillées

lors de la première journée de travail, François et Jojo travaillent le même nombre d'heure. 1h chacun, sur une amplitude d'1h 30

François à une amplitude comptabilisée de 1h et jojo de 2h.

Si la solution réside en mettant aussi 9h30 - 10h30 - etc... c'est pas très gênant pour moi

merci encore

La fonction modifiée:

Function Ampl(Plage As Range, Ligne As Long) As Long
    Dim HeureDeb As Double, HeureFin As Double, i As Long, DerCol As Long
    DerCol = Range("ZZ8").End(xlToLeft).Column
    For i = 6 To DerCol
        If HeureDeb = 0 Then
            If Cells(Ligne, i).Interior.ColorIndex <> xlNone Then
                If Cells(8, i) = "" Then
                    HeureDeb = Cells(8, i - 1) + 0.5
                    GoTo Heure_Fin
                Else
                    HeureDeb = Cells(8, i)
                    GoTo Heure_Fin
                End If
            End If
        End If
    Next i
Heure_Fin:
    For i = DerCol To 6 Step -1
        If HeureFin = 0 Then
            If Cells(Ligne, i).Interior.ColorIndex <> xlNone Then
                If Cells(8, i) = "" Then
                    HeureFin = Cells(8, i - 1) + 0.5
                    Ampl = HeureFin - HeureDeb
                Else
                    HeureFin = Cells(8, i)
                    Ampl = HeureFin - HeureDeb
                End If
            End If
        End If
    Next i
End Function

j'ai le même soucis qu'avec le fichier précédent

capture d ecran 2023 02 05 a 10 40 13

et quand je fais un copier coller du code dans ce fichier

17planning-ampli.xlsm (25.09 Ko)

ça ne change rien par rapport à la fois précédente 🤔

je suis désolé

Problème sûrement lié au MAC.

Si vous cliquez sur OUI, que se passe -t-il ?

S'il ouvre le fichier, qu'est-ce qui a changé ?

Alors quand j'ouvre le fichier il em demande d'activer les macros, je clique sur oui et alors apparait ce message.

Je clique sur OUI et il me demande de réactiver les macros 2 fois.

ensuite il affiche ce message :

capture d ecran 2023 02 05 a 11 07 28

si je clique sur afficher il me met ceci

capture d ecran 2023 02 05 a 11 07 41

ce qui est surprenant c'est qu'il affiche une erreur dans le h de travail.

Supprimez toutes les fonctions qui se trouvent dans le module "ThisWorkbook" et, fermez et rouvrez le fichier.

je suis désolé je n'arrive pas à suivre...

dans ce fichier que vous m'avez envoyé à 10h22

i n'y a rien dans "this workbook", et rien ailleurs non plus. plus aucun VBA

et dans ce fichier

10planning-ampli.xlsm (23.45 Ko)

je n'ai plus rien non plus dans "this workbook" et pourtant celà ne change rien

je suis navré....

Pourtant quand j'ouvre le fichier de 10h22, voici ce que je vois:

breizhinours

********************************************************************************************************

Je vous retourne le fichier en ayant vidé le module "ThisWorkbook"

et les codes sont bien présents dans le module 1

breizhinours 2

Cdlt

en fait quand j'ouvre celui de 10h22 c'est là que j'ai le message d'erreur...

est-ce qu'il n'essaye pas de le réparer en supprimant le VBA ? ce qui expliquerait que le code n'apparait plus chez moi ?

es-ce que vous pouvez faire la modification chez vous et me le renvoyer ?

je suis désolé je ne vois pas d'autre explication

le fichier joint est entre les 2 images de dernier post.

j’ai essayé ce fichier mails j’ai le même soucis à l’ouverture.

Bonjour,

Essayez celui-ci, la formule de calcul à été modifiée et donne un résultat plus juste. et peut-être que cela solutionnera le problème qui affecte votre fichier à l'ouverture, sinon après, je ne vois pas ce qui coince à part le fait que vous utilisez un MAC.

Cdlt

Rechercher des sujets similaires à "calcul amplitude suivant remplies"