Problème de formule Excel

Bonjour à tous,

Je rencontre un problème sur excel, je dois créer un tableau de congés et j'ai besoin de rentrer 3 formules dans la mise en forme conditionnelle. J'ai récupéré un exemple qui fonctionne avec les 3 premières dates de congés. Or j'aimerais pouvoir le faire avec les 10 dates. J'ai donc par exemple pour la formule qui colore la case en rouge compléter la formule : =OU(ET(AI$7>=$C13;AI$7<=$E13;AI$7>=$AH13;AI$7>=AUJOURDHUI());ET(AI$7>=$F13;AI$7<=$H13;AI$7>=$AH13;AI$7>=AUJOURDHUI());ET(AI$7>=$I13;AI$7<=$K13;AI$7>=$AH13;AI$7>=AUJOURDHUI());ET(AI$7>=$L13;AI$7<=$N13;AI$7>=$AH13;AI$7>=AUJOURDHUI());ET(AI$7>=$O13;AI$7<=$Q13;AI$7>=$AH13;AI$7>=AUJOURDHUI());ET(AI$7>=$R13;AI$7<=$T13;AI$7>=$AH13;AI$7>=AUJOURDHUI());ET(AI$7>=$U13;AI$7<=$W13;AI$7>=$AH13;AI$7>=AUJOURDHUI());ET(AI$7>=$X13;AI$7<=$Z13;AI$7>=$AH13;AI$7>=AUJOURDHUI());ET(AI$7>=$AA13;AI$7<=$AC13;AI$7>=$AH13;AI$7>=AUJOURDHUI());ET(AI$7>=$AD13;AI$7<=$AF13;AI$7>=$AH13;AI$7>=AUJOURDHUI()))

Mais lorsque je souhaite la modifier directement cela ne fonctionne pas, je ne trouve pas mon erreur..

Je met en pièce jointe mon fichier excel, si quelqu'un pouvait me donner la solution je lui en serais très reconnaissante.

Merci par avance et bonne journée à tous

Bonsoir,

Je m'interdis d'écrire une formule susceptible de dépasser 3 lignes, considérant que c'est alors du temps trop mal utilisé...

Je propose donc une fonction personnalisée de nature à raccourcir sensiblement la formule MFC :

Function ESTCONGE(J As Date, PlgCg As Range) As Boolean
    Dim i%
    Application.Volatile
    With PlgCg
        For i = 1 To .Columns.Count Step 3
            If .Cells(1, i) <> "" Then
                If .Cells(1, i + 2) <> "" Then
                    If J >= .Cells(1, i) And J <= .Cells(1, i + 2) Then
                        ESTCONGE = True: Exit Function
                    End If
                Else
                    If J = .Cells(1, i) Then ESTCONGE = True: Exit Function
                End If
            'Else
                'ESTCONGE = False: Exit Function
            End If
        Next i
    End With
End Function

On lui passe la date du jour (en ligne 7 pour la MFC) et la plage d'enregistrement des dates de congés (de C à AF sur la ligne pour la MFC). Si cette date est dans une période de congés, elle répond VRAI, sinon FAUX.

Tu noteras que 2 lignes de code sont invalidées (précédées d'une apostrophe). C'est dû au fait que si tu laisses des vides dans tes périodes congé1 à congé10, la fonction est obligée de tester les 10 périodes pour s'assurer qu'il n'y en a pas de remplie à la suite...

Je conseillerai donc de servir systématiquement les congés en partant de congé1, et de servir pour chacun dans l'ordre, ainsi si on rencontre un vide, on sait qu'il ne peut y en avoir plus loin ! Et supprimer les apostrophes de ces deux lignes de code pour les rendre actives, cela gagnera du temps de calcul.

Je ne me suis occupé que des deux MFC rose et bleue, la 3e je ne sais pas ce qu'elle fait...

Il y a apparemment un peu de ménage à faire dans les MFC...

Cordialement.

Bonjour,

Etant débutante dans l'emploi d'excel je ne maîtrise pas les fonctions mais vous avez complètement raison.

Je pense avoir compris ce que vous avez fait, c'est juste super.

Concernant ls formules MFC il y en a beaucoup et comme le fichier de départ n'est pas de moi je n'ai pas osé trop les enlever.

Merci énormément pour votre réponse, c'est exactement ce qu'il me fallait et je n'aurais pas réussi à le faire par moi-même.

Encore merci et bonne fin de journée,

Bien cordialement.

Merci du retour, et bonne continuation à toi

Rechercher des sujets similaires à "probleme formule"