Bonjour,
je cherche à réaliser une fonction personnalisée qui, par l'intermédaire d'un test sur la couleur de plusieurs cellules (rouge, IndexColor = 3), renverrait l'intitulé des colonnes correspondantes sous forme concaténée.
Le gros problème auquel je me heurte depuis quelques jours concerne l'utilisation et l'imbrication de boucles FOR que j'ai pensé utiliser pour arriver mes fins...
Le début de code que j'ai est le suivant, sachant que je suis vraiment bloqué pour la suite et qu'il y a peut-être une méthode plus directe à laquelle je n'ai pas pensée, n'étant pas un spécialiste de VB.
J'ai joint un fichier Excel exemple pour préciser mes besoins et la problématique. Au final ce que j'aimerai obtenir en fonction des combinaisons considérées est le contenu des cellules de fond rose...
Si une âme charitable peut se pencher sur mon problème pour m'aider ou au moins me mettre sur la voie, ça serait extra!
Merci par avance
je cherche à réaliser une fonction personnalisée qui, par l'intermédaire d'un test sur la couleur de plusieurs cellules (rouge, IndexColor = 3), renverrait l'intitulé des colonnes correspondantes sous forme concaténée.
Le gros problème auquel je me heurte depuis quelques jours concerne l'utilisation et l'imbrication de boucles FOR que j'ai pensé utiliser pour arriver mes fins...
Le début de code que j'ai est le suivant, sachant que je suis vraiment bloqué pour la suite et qu'il y a peut-être une méthode plus directe à laquelle je n'ai pas pensée, n'étant pas un spécialiste de VB.
Code:
Function Param(Combinaison As Range) As String
Dim Pièce As String
Dim cel1 As Range, cel2 As Range, vColorCell As Range
Dim i As Byte, j As Byte
i = 0
j = 0
'Boucle sur l'ensemble des éléments retenus dans la combinaison
For Each cel1 In Combinaison
Pièce = cel1.Value
With Sheets("Données")
'Boucle pour trouver l'indice de ligne associé à "Pièce"
For Each cel2 In .Range("B2:B5")
If cel2.Value = Pièce Then
i = cel2.Row
Exit For
End If
'Boucle pour trouver les indices de colonne associés à des cellules colorées en rouge
For Each vColorCell In .Range(Cells(i, 3), Cells(i, 6))
If vColorCell.Interior.ColorIndex = 3 Then
j = vColorCell.Column
End If
Next vColorCell
Next cel2
End With
Next cel1
End Function
J'ai joint un fichier Excel exemple pour préciser mes besoins et la problématique. Au final ce que j'aimerai obtenir en fonction des combinaisons considérées est le contenu des cellules de fond rose...
Si une âme charitable peut se pencher sur mon problème pour m'aider ou au moins me mettre sur la voie, ça serait extra!
Merci par avance