Bonjour à tous,
Je suis en train de coder une macro qui me permette de venir chercher la valeur d'une cellule d'une plage donnée en fonction de sa couleur pour venir la copier dans une cellule spécifiée en fonction du nom de la feuille d'origine de la cellule de couleur...(pas évident à expliquer).
Voici mon code :
Sub Feuille_resume()
'trouver le rang AV sur chaque segment de marché, en fonction de la couleur
Dim c As Range
Dim c2 As Range
For Each sh In Sheets(Array("ALTO", "AVSV", "AVTS", "ATEMPORAL", "PREMIUM", "CLASSIC", "FML"))
sh.Select
fin = [B65536].End(xlUp).Row
For Each c In Range("b4:b" & fin)
If c.Interior.ColorIndex = -4105 Then Exit For
Next c
For Each c2 In Sheets("resume").Range("c6:i6")
If c2.Text = ActiveSheet.Name Then Exit For
Next c2
Sheets("resume").Cells(c2.Column, c2.Row + 7).Value = c
Next sh
End Sub
le souci que je rencontre pour le moment c'est que le c final (en bleu) ne renvoie aucune valeur. Je ne sais pas comment faire en sorte de mémoriser la valeur de c lorsque l'on sort de la première boucle for.
Ou alors la couleur spécifié n'est pas adéquat. POur trouver la bonne couleur j'ai utilisé la msg box suivante :
Sub color()
MsgBox ActiveCell.Font.ColorIndex
End Sub
en me plaçant sur la cellule avec la couleur souhaitée (est-ce normal que la color index soit négative??)
Merci par avance pour votre précieuse aide
Amaury
Je suis en train de coder une macro qui me permette de venir chercher la valeur d'une cellule d'une plage donnée en fonction de sa couleur pour venir la copier dans une cellule spécifiée en fonction du nom de la feuille d'origine de la cellule de couleur...(pas évident à expliquer).
Voici mon code :
Sub Feuille_resume()
'trouver le rang AV sur chaque segment de marché, en fonction de la couleur
Dim c As Range
Dim c2 As Range
For Each sh In Sheets(Array("ALTO", "AVSV", "AVTS", "ATEMPORAL", "PREMIUM", "CLASSIC", "FML"))
sh.Select
fin = [B65536].End(xlUp).Row
For Each c In Range("b4:b" & fin)
If c.Interior.ColorIndex = -4105 Then Exit For
Next c
For Each c2 In Sheets("resume").Range("c6:i6")
If c2.Text = ActiveSheet.Name Then Exit For
Next c2
Sheets("resume").Cells(c2.Column, c2.Row + 7).Value = c
Next sh
End Sub
le souci que je rencontre pour le moment c'est que le c final (en bleu) ne renvoie aucune valeur. Je ne sais pas comment faire en sorte de mémoriser la valeur de c lorsque l'on sort de la première boucle for.
Ou alors la couleur spécifié n'est pas adéquat. POur trouver la bonne couleur j'ai utilisé la msg box suivante :
Sub color()
MsgBox ActiveCell.Font.ColorIndex
End Sub
en me plaçant sur la cellule avec la couleur souhaitée (est-ce normal que la color index soit négative??)
Merci par avance pour votre précieuse aide
Amaury