FOCNTION SI difficile...(j'y suis depuis 2 heures...peut être pas doué)

Bonjour tout le monde,

Et merci à tous à toutes et tous ceux qui peuvent m’aider. J’ai beaucoup de mal avec une fonction à créer. Ce ne devrait pas être compliqué, et j’essaie de m’en sortir tout seul…mais j’y arrive pôô …

Je vous joins un tableau.

14essai.xlsx (10.73 Ko)

L’idée est que le total de chaque semaine génère les cases vertes de cette façon :

- Si une personne est en télétravail 1 jour et le reste du temps "sur site" ou "absente" - > j'aimerais qu'elle compte en 1 jour télétravail

- Même chose pour télétravail 2 jours ou 3 jour ou 4 jours.

MAIS à la fois j’aimerais que (et c'est là où ça se complique)

- si une personne n’est jamais en télétravail et a au moins 3 jours sur site elle compte parmi les effectifs 100% sur site. (par exemple une personne absente 2 jours et 3 jours sur site comptera 100% sur site mais si absente 3 jours et 2 jours sur site elle comptera parmi les absents de la semaine).

- SI une personne est absente au moins 3 jours, elle compte parmi les absents peu importe ses jours de télétravail

Je sais pas si c'est faisable...?? Si oui, quelqu'un pourrait-il m'aider s'il vous plait ?

Merci beaucoup beaucoup !!!

Bonjour

Une proposition

11teletravail.xlsx (11.20 Ko)

Bonjour à toi!

Moi je te propose une solution en VBA, mais je ne suis pas certain d'avoir tout compris à ton problème

Sub EDT()
    Dim ligne, colonne, NbAbs, NbTeleTravail, NbSurSite, Nb100Site, Nb100Distance, Nb1Tele, Nb2Tele, Nb3Tele, Nb4Tele, Absent As Integer
    'initialisation des compteurs globaux
    Nb100Site = 0
    Nb100Distance = 0
    Nb1Tele = 0
    Nb2Tele = 0
    Nb3Tele = 0
    Nb4Tele = 0
    Absent = 0

    'Je parcours tout ton tableau, ici jusque la ligne 7, à modifier en fonction
    For ligne = 3 To 7
    'initialisation des compteurs perso
    NbAbs = 0
    NbTeleTravail = 0
    NbSurSite = 0
        'On regarde chaque jour de la semaine
        For colonne = 3 To 7
            If Cells(ligne, colonne) = "Absent(e) " Then
                NbAbs = NbAbs + 1
            ElseIf Cells(ligne, colonne) = "Sur site" Then
                NbSurSite = NbSurSite + 1
            ElseIf Cells(ligne, colonne) = "En télétravail" Then
                NbTeleTravail = NbTeleTravail + 1
            End If
        Next colonne
        Cells(ligne, 8) = NbTeleTravail
        Cells(ligne, 9) = NbSurSite
        Cells(ligne, 10) = NbAbs
        If NbAbs <= 2 Then
            If NbTeleTravail = 0 Then 'si absent max 2 jours et 0 en télétravail
                Nb100Site = Nb100Site + 1
            ElseIf NbTeleTravail = 1 Then   'Si 1 seul jour en télétravail etc...
                Nb1Tele = Nb1Tele + 1
            ElseIf NbTeleTravail = 2 Then
                Nb2Tele = Nb2Tele + 1
            ElseIf NbTeleTravail = 3 Then
                Nb3Tele = Nb3Tele + 1
            ElseIf NbTeleTravail = 4 Then
                Nb4Tele = Nb4Tele + 1
            ElseIf NbTeleTravail = 5 Then
                'Je suppose que si quelqu'un est 100% en teletravail, il est noté 100% distance ?
                Nb100Distance = Nb100Distance + 1
            End If
        Else
            Absent = Absent + 1
        End If
    Next ligne
    Cells(11, 3) = Nb100Site
    Cells(12, 3) = Nb1Tele
    Cells(13, 3) = Nb2Tele
    Cells(14, 3) = Nb3Tele
    Cells(15, 3) = Nb4Tele
    Cells(16, 3) = Nb100Distance

End Sub

Voici un fichier pour voir ce que ça donne, en espérant t'avoir aider un peu

Merci beaucoup !!

J'ai retouché certaines choses du coup mais vous m'avez mis sur la voie.

C'est top !!

Grand merci !!

Rechercher des sujets similaires à "focntion difficile suis heures etre pas doue"