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 FunctionOn 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