Associer la valeur d'une cellule avec la couleur de fond d'une autre
Du fait qu'on n'a plus affaire à des fusions de cellules, la fonction se simplifie, on se sert de la ligne du nom pour tirer les colonnes IDE ou AS et SA ou DI. Et la feuille est unique. Donc plus qu'un seul argument pour la fonction.
A part la détermination des variables ai et sce déduites de la ligne, il fallait juste ramener l'offset de 5 à 3 pour compenser les 2 colonns disparues (pas de distinction matin/après-midi).
Function CasPartNuit(Cnm As Range) As Integer
Dim nom$, ia%, sce%, i%, PlgCas
Application.Volatile
nom = Cnm.Value ': F = nf.Value
If nom = "" Then CasPartNuit = 0: Exit Function
Select Case Cnm.Row
Case 3 To 10: ia = 1: sce = 2 'ou 13 ?
Case 15 To 18: ia = 10: sce = 11
Case 21 To 28: ia = 1: sce = 3 'ou 30 ?
Case 33 To 36: ia = 10: sce = 12
Case Else: CasPartNuit = 0: Exit Function
End Select
With Worksheets("Nuit")
For i = 4 To 34
If .Cells(i, ia) = nom And .Cells(i, sce) = "ü" Then
PlgCas = .Cells(i, ia).Offset(, 3).Resize(, 6).Value
Exit For
End If
Next i
End With
If i <= 34 Then
For i = 1 To 6
If PlgCas(1, i) = "ü" Then Exit For
Next i
CasPartNuit = IIf(i < 7, i, 0)
Else
CasPartNuit = 0
End If
End FunctionSelon la réponse à la question sur les 2 lignes, tu ajusteras les Case en regard desquels j'ai laissé des commentaires.
(NB- supprimé la déclaration de variable n dans la 1re fonction, j'avais pensé au départ en avoir besoin, puis oublié de la supprimer...)
J'ai ajusté ta formule MFC, et te laisse mettre les autres. Mais pourquoi as-tu modifié la déclaration globale de plage d'application en la fractionnant. Les fonctions sont déjà conçues pour renvoyer faux si ça ne doit pas s'appliquer et en ajoutant dans la formule MFC une condition que cellule ne soit pas vide est une sécurité supplémentaire qui devrait en principe être inutile. Jouer sur ces facteurs conditionnels permet d'éviter de passer du temps à découper la plage d'application pour indiquer une plage globale qui sera plus facile à gérer ensuite, sachant que les cellules pour lesquelles la MFC ne doit pas s'appliquer, elle ne s'appliquera pas.
Je te laisse finir. Pas trop de temps, demain journée clinique avec anesthésie...
Cordialement.
Merci encore MFerrat, pour ton travail et ta patience. Je viens de finir de réaliser mon document sans problèmes, et j'ai appris plein de chose sur les mfc en regardant ton travail (vba, trop compliqué pour moi...)
Bon courage pour demain !