Bonjour =C3=A0 tous,
De retour pour solliciter votre aide.
J'ai une feuille avec plusieurs lignes et plusieurs colonnes.
Certaines cellules ont un fond de cellule avec une couleur donn=C3=A9e (on =
va dire orange).
Je voudrais rechercher ces cellules sp=C3=A9cifiques mais uniquement dans u=
ne colonne donn=C3=A9e.
Je me demande si la m=C3=A9thode .find peut =C3=AAtre utilis=C3=A9e.
Merci pour votre aide
Alf
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacquouille
Bonjour Alf, Pourrais-tu, par exemple, ton tableau = A2:E10 For each c in range("A2:E10") IF c.interior.colorindex= orange (c'est mieux :RGB(220, 220, 220) par ex) then derL= Cells(Rows.Count, 6).End(xlUp).Row range("F"&derL).value = l'adresse de c ou mieux, tu attends la solution que Denis va te donner. Elle sera meilleure. -)) Jacques " Le vin est au repas ce que le parfum est à la femme." . "Alf" a écrit dans le message de groupe de discussion : Bonjour à tous, De retour pour solliciter votre aide. J'ai une feuille avec plusieurs lignes et plusieurs colonnes. Certaines cellules ont un fond de cellule avec une couleur donnée (on va dire orange). Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée. Je me demande si la méthode .find peut être utilisée. Merci pour votre aide Alf
Bonjour Alf,
Pourrais-tu, par exemple, ton tableau = A2:E10
For each c in range("A2:E10")
IF c.interior.colorindex= orange (c'est mieux :RGB(220, 220, 220) par ex)
then
derL= Cells(Rows.Count, 6).End(xlUp).Row
range("F"&derL).value = l'adresse de c
ou mieux, tu attends la solution que Denis va te donner. Elle sera
meilleure. -))
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Alf" a écrit dans le message de groupe de discussion :
4075755f-93fd-489a-9467-af6d7b390362@googlegroups.com...
Bonjour à tous,
De retour pour solliciter votre aide.
J'ai une feuille avec plusieurs lignes et plusieurs colonnes.
Certaines cellules ont un fond de cellule avec une couleur donnée (on va
dire orange).
Je voudrais rechercher ces cellules spécifiques mais uniquement dans une
colonne donnée.
Je me demande si la méthode .find peut être utilisée.
Merci pour votre aide
Alf
Bonjour Alf, Pourrais-tu, par exemple, ton tableau = A2:E10 For each c in range("A2:E10") IF c.interior.colorindex= orange (c'est mieux :RGB(220, 220, 220) par ex) then derL= Cells(Rows.Count, 6).End(xlUp).Row range("F"&derL).value = l'adresse de c ou mieux, tu attends la solution que Denis va te donner. Elle sera meilleure. -)) Jacques " Le vin est au repas ce que le parfum est à la femme." . "Alf" a écrit dans le message de groupe de discussion : Bonjour à tous, De retour pour solliciter votre aide. J'ai une feuille avec plusieurs lignes et plusieurs colonnes. Certaines cellules ont un fond de cellule avec une couleur donnée (on va dire orange). Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée. Je me demande si la méthode .find peut être utilisée. Merci pour votre aide Alf
Michd
Bonjour, Un petit exemple : '-------------------------------------------------------- Sub test() Dim MaCouleur As Long Dim C As Range 'Remplace A1 par l'adresse d'une cellule qui est colorée 'Ceci pour extraire la valeur de la couleur. Si tu connais 'cette valeur, tu peux l'attribuer en dur à la variable 'Macouleur MaCouleur = Worksheets("Feuil1").Range("A1").Interior.Color 'une boucle sur la plage de cellules que tu veux For Each C In Worksheets("Feuil1").Range("C5:C20") If C.Interior.Color = MaCouleur Then 'action à déterminer End If Next End Sub '-------------------------------------------------------- MichD
Bonjour,
Un petit exemple :
'--------------------------------------------------------
Sub test()
Dim MaCouleur As Long
Dim C As Range
'Remplace A1 par l'adresse d'une cellule qui est colorée
'Ceci pour extraire la valeur de la couleur. Si tu connais
'cette valeur, tu peux l'attribuer en dur à la variable
'Macouleur
MaCouleur = Worksheets("Feuil1").Range("A1").Interior.Color
'une boucle sur la plage de cellules que tu veux
For Each C In Worksheets("Feuil1").Range("C5:C20")
If C.Interior.Color = MaCouleur Then
'action à déterminer
End If
Next
End Sub
'--------------------------------------------------------
Bonjour, Un petit exemple : '-------------------------------------------------------- Sub test() Dim MaCouleur As Long Dim C As Range 'Remplace A1 par l'adresse d'une cellule qui est colorée 'Ceci pour extraire la valeur de la couleur. Si tu connais 'cette valeur, tu peux l'attribuer en dur à la variable 'Macouleur MaCouleur = Worksheets("Feuil1").Range("A1").Interior.Color 'une boucle sur la plage de cellules que tu veux For Each C In Worksheets("Feuil1").Range("C5:C20") If C.Interior.Color = MaCouleur Then 'action à déterminer End If Next End Sub '-------------------------------------------------------- MichD
Alf
Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous, De retour pour solliciter votre aide. J'ai une feuille avec plusieurs lignes et plusieurs colonnes. Certaines cellules ont un fond de cellule avec une couleur donnée (o n va dire orange). Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée. Je me demande si la méthode .find peut être utilisée. Merci pour votre aide Alf
Je teste toujours toutes les solutions Jacquouille...:-) Pas de souci pour moi, avec vous je sais que je vais avoir des tas de solut ions...
Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous,
De retour pour solliciter votre aide.
J'ai une feuille avec plusieurs lignes et plusieurs colonnes.
Certaines cellules ont un fond de cellule avec une couleur donnée (o n va dire orange).
Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée.
Je me demande si la méthode .find peut être utilisée.
Merci pour votre aide
Alf
Je teste toujours toutes les solutions Jacquouille...:-)
Pas de souci pour moi, avec vous je sais que je vais avoir des tas de solut ions...
Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous, De retour pour solliciter votre aide. J'ai une feuille avec plusieurs lignes et plusieurs colonnes. Certaines cellules ont un fond de cellule avec une couleur donnée (o n va dire orange). Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée. Je me demande si la méthode .find peut être utilisée. Merci pour votre aide Alf
Je teste toujours toutes les solutions Jacquouille...:-) Pas de souci pour moi, avec vous je sais que je vais avoir des tas de solut ions...
Alf
Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous, De retour pour solliciter votre aide. J'ai une feuille avec plusieurs lignes et plusieurs colonnes. Certaines cellules ont un fond de cellule avec une couleur donnée (o n va dire orange). Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée. Je me demande si la méthode .find peut être utilisée. Merci pour votre aide Alf
Toutes les solutions marchent.... Mais c'est un peu long si on a 50000 lignes. J'ai essayé avec ce code, mais il ne me renvoie que des lignes où les cellules sont sans couleur de fond: '---------- Set C = Worksheets("Feuil1").Range("A:A") _ .Find((Application.FindFormat.Interior.ColorIndex = 44), LookAt:=xl Part, SearchFormat:=True) If Not C Is Nothing Then FirstAddress = C.Address Do 'Traitement quelconque ligne=c.row Set C = Range("A:A").Find((Application.FindFormat.Interior.Col orIndex = 45), C, , xlPart, , xlNext, True) Loop While Not C Is Nothing And C.Address <> FirstAddress End If
Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous,
De retour pour solliciter votre aide.
J'ai une feuille avec plusieurs lignes et plusieurs colonnes.
Certaines cellules ont un fond de cellule avec une couleur donnée (o n va dire orange).
Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée.
Je me demande si la méthode .find peut être utilisée.
Merci pour votre aide
Alf
Toutes les solutions marchent....
Mais c'est un peu long si on a 50000 lignes.
J'ai essayé avec ce code, mais il ne me renvoie que des lignes où les cellules sont sans couleur de fond:
'----------
Set C = Worksheets("Feuil1").Range("A:A") _
.Find((Application.FindFormat.Interior.ColorIndex = 44), LookAt:=xl Part, SearchFormat:=True)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
'Traitement quelconque
ligne=c.row
Set C = Range("A:A").Find((Application.FindFormat.Interior.Col orIndex = 45), C, , xlPart, , xlNext, True)
Loop While Not C Is Nothing And C.Address <> FirstAddress
End If
Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous, De retour pour solliciter votre aide. J'ai une feuille avec plusieurs lignes et plusieurs colonnes. Certaines cellules ont un fond de cellule avec une couleur donnée (o n va dire orange). Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée. Je me demande si la méthode .find peut être utilisée. Merci pour votre aide Alf
Toutes les solutions marchent.... Mais c'est un peu long si on a 50000 lignes. J'ai essayé avec ce code, mais il ne me renvoie que des lignes où les cellules sont sans couleur de fond: '---------- Set C = Worksheets("Feuil1").Range("A:A") _ .Find((Application.FindFormat.Interior.ColorIndex = 44), LookAt:=xl Part, SearchFormat:=True) If Not C Is Nothing Then FirstAddress = C.Address Do 'Traitement quelconque ligne=c.row Set C = Range("A:A").Find((Application.FindFormat.Interior.Col orIndex = 45), C, , xlPart, , xlNext, True) Loop While Not C Is Nothing And C.Address <> FirstAddress End If
Jacquouille
Re Si je puis me permettre, pour ce qui est des couleurs, je préfère utiliser le système RGB car les couleurs des palettes proposées varient parfois d'un PC à l'autre et d'une version à l'autre. Même si je conçois que c'est plus facile d'utiliser le n° d'index. ---------------------- Pour trouver l'index de ton "orange": Sub trouver_couleur() Dim xx As Variant xx = Range("f4").Interior.ColorIndex MsgBox xx End Sub ------------------------- Sub chercher_couleur_ter() Dim A As Variant Dim R As Variant Dim g As Variant Dim B As Variant For X = 1 To 21 Step 5 For Each C In Range("A" & X & ":h" & X) A = Right("000000" & Hex(C.Interior.Color), 6) R = Evaluate("HEXDEC(""" & Right(A, 2) & """)") g = Evaluate("HEXDEC(""" & Mid(A, 3, 2) & """)") B = Evaluate("HEXDEC(""" & Left(A, 2) & """)") 'MsgBox r & ", " & g & ", " & b C.Offset(3, 0) = C.Interior.ColorIndex C.Offset(4, 0) = R & ", " & g & ", " & B Next Next End Sub ------------------------------------ ou avec le num de la couleur: Sub Couleur_trouver() X = Range("j1").Interior.Color '=numéro de la couleur, mais pas index ni RGB Range("b2") = X End Sub ------------ Toutes ces macros sont issues de ce forum où elles ont été publiées par d'éminent savants autres que moi ....-)) Pour ton problème de lignes blanches, il est possible que la définition de ta couleur ne soit pas bonne. Je vois aussi que tu sautes de l'index 44 au 45. Vois ce fichier en annexe CJOINT, fichier réalisé grâce à l'aide des Grands Répondeurs d'ici-bas, que je remercie encore. https://www.cjoint.com/c/GLqrHDxoeKi Jacques " Le vin est au repas ce que le parfum est à la femme." . "Alf" a écrit dans le message de groupe de discussion : Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous, De retour pour solliciter votre aide. J'ai une feuille avec plusieurs lignes et plusieurs colonnes. Certaines cellules ont un fond de cellule avec une couleur donnée (on va dire orange). Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée. Je me demande si la méthode .find peut être utilisée. Merci pour votre aide Alf
Toutes les solutions marchent.... Mais c'est un peu long si on a 50000 lignes. J'ai essayé avec ce code, mais il ne me renvoie que des lignes où les cellules sont sans couleur de fond: '---------- Set C = Worksheets("Feuil1").Range("A:A") _ .Find((Application.FindFormat.Interior.ColorIndex = 44), LookAt:=xlPart, SearchFormat:=True) If Not C Is Nothing Then FirstAddress = C.Address Do 'Traitement quelconque ligne=c.row Set C = Range("A:A").Find((Application.FindFormat.Interior.ColorIndex = 45), C, , xlPart, , xlNext, True) Loop While Not C Is Nothing And C.Address <> FirstAddress End If
Re
Si je puis me permettre, pour ce qui est des couleurs, je préfère utiliser
le système RGB car les couleurs des palettes proposées varient parfois d'un
PC à l'autre et d'une version à l'autre.
Même si je conçois que c'est plus facile d'utiliser le n° d'index.
----------------------
Pour trouver l'index de ton "orange":
Sub trouver_couleur()
Dim xx As Variant
xx = Range("f4").Interior.ColorIndex
MsgBox xx
End Sub
-------------------------
Sub chercher_couleur_ter()
Dim A As Variant
Dim R As Variant
Dim g As Variant
Dim B As Variant
For X = 1 To 21 Step 5
For Each C In Range("A" & X & ":h" & X)
A = Right("000000" & Hex(C.Interior.Color), 6)
R = Evaluate("HEXDEC(""" & Right(A, 2) & """)")
g = Evaluate("HEXDEC(""" & Mid(A, 3, 2) & """)")
B = Evaluate("HEXDEC(""" & Left(A, 2) & """)")
'MsgBox r & ", " & g & ", " & b
C.Offset(3, 0) = C.Interior.ColorIndex
C.Offset(4, 0) = R & ", " & g & ", " & B
Next
Next
End Sub
------------------------------------
ou avec le num de la couleur:
Sub Couleur_trouver()
X = Range("j1").Interior.Color
'=numéro de la couleur, mais pas index ni RGB
Range("b2") = X
End Sub
------------
Toutes ces macros sont issues de ce forum où elles ont été publiées par
d'éminent savants autres que moi ....-))
Pour ton problème de lignes blanches, il est possible que la définition de
ta couleur ne soit pas bonne.
Je vois aussi que tu sautes de l'index 44 au 45.
Vois ce fichier en annexe CJOINT, fichier réalisé grâce à l'aide des Grands
Répondeurs d'ici-bas, que je remercie encore.
https://www.cjoint.com/c/GLqrHDxoeKi
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Alf" a écrit dans le message de groupe de discussion :
ba272387-06f2-4c0c-a0c8-1b86ea410eec@googlegroups.com...
Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous,
De retour pour solliciter votre aide.
J'ai une feuille avec plusieurs lignes et plusieurs colonnes.
Certaines cellules ont un fond de cellule avec une couleur donnée (on va
dire orange).
Je voudrais rechercher ces cellules spécifiques mais uniquement dans une
colonne donnée.
Je me demande si la méthode .find peut être utilisée.
Merci pour votre aide
Alf
Toutes les solutions marchent....
Mais c'est un peu long si on a 50000 lignes.
J'ai essayé avec ce code, mais il ne me renvoie que des lignes où les
cellules sont sans couleur de fond:
'----------
Set C = Worksheets("Feuil1").Range("A:A") _
.Find((Application.FindFormat.Interior.ColorIndex = 44), LookAt:=xlPart,
SearchFormat:=True)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
'Traitement quelconque
ligne=c.row
Set C =
Range("A:A").Find((Application.FindFormat.Interior.ColorIndex = 45), C, ,
xlPart, , xlNext, True)
Loop While Not C Is Nothing And C.Address <> FirstAddress
End If
Re Si je puis me permettre, pour ce qui est des couleurs, je préfère utiliser le système RGB car les couleurs des palettes proposées varient parfois d'un PC à l'autre et d'une version à l'autre. Même si je conçois que c'est plus facile d'utiliser le n° d'index. ---------------------- Pour trouver l'index de ton "orange": Sub trouver_couleur() Dim xx As Variant xx = Range("f4").Interior.ColorIndex MsgBox xx End Sub ------------------------- Sub chercher_couleur_ter() Dim A As Variant Dim R As Variant Dim g As Variant Dim B As Variant For X = 1 To 21 Step 5 For Each C In Range("A" & X & ":h" & X) A = Right("000000" & Hex(C.Interior.Color), 6) R = Evaluate("HEXDEC(""" & Right(A, 2) & """)") g = Evaluate("HEXDEC(""" & Mid(A, 3, 2) & """)") B = Evaluate("HEXDEC(""" & Left(A, 2) & """)") 'MsgBox r & ", " & g & ", " & b C.Offset(3, 0) = C.Interior.ColorIndex C.Offset(4, 0) = R & ", " & g & ", " & B Next Next End Sub ------------------------------------ ou avec le num de la couleur: Sub Couleur_trouver() X = Range("j1").Interior.Color '=numéro de la couleur, mais pas index ni RGB Range("b2") = X End Sub ------------ Toutes ces macros sont issues de ce forum où elles ont été publiées par d'éminent savants autres que moi ....-)) Pour ton problème de lignes blanches, il est possible que la définition de ta couleur ne soit pas bonne. Je vois aussi que tu sautes de l'index 44 au 45. Vois ce fichier en annexe CJOINT, fichier réalisé grâce à l'aide des Grands Répondeurs d'ici-bas, que je remercie encore. https://www.cjoint.com/c/GLqrHDxoeKi Jacques " Le vin est au repas ce que le parfum est à la femme." . "Alf" a écrit dans le message de groupe de discussion : Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous, De retour pour solliciter votre aide. J'ai une feuille avec plusieurs lignes et plusieurs colonnes. Certaines cellules ont un fond de cellule avec une couleur donnée (on va dire orange). Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée. Je me demande si la méthode .find peut être utilisée. Merci pour votre aide Alf
Toutes les solutions marchent.... Mais c'est un peu long si on a 50000 lignes. J'ai essayé avec ce code, mais il ne me renvoie que des lignes où les cellules sont sans couleur de fond: '---------- Set C = Worksheets("Feuil1").Range("A:A") _ .Find((Application.FindFormat.Interior.ColorIndex = 44), LookAt:=xlPart, SearchFormat:=True) If Not C Is Nothing Then FirstAddress = C.Address Do 'Traitement quelconque ligne=c.row Set C = Range("A:A").Find((Application.FindFormat.Interior.ColorIndex = 45), C, , xlPart, , xlNext, True) Loop While Not C Is Nothing And C.Address <> FirstAddress End If
Michd
Il y a ceci : Cette ligne de code est là simplement pour trouver le code "Color" que tu cherches. Si tu désires, tu peux utiliser la propriété ColorIndex... Si tu connais la valeur recherchée, tu peux l'indiquer directement Exemple : 'En supposant que A1 a la couleur de fond que tu recherches .Interior.Color = Sh.Range("A1").Interior.Color 'ou simplement : .Interior.Color = 255 'la valeur seulement '-------------------------------------------------------------------- Sub Rechercher_Format_Cellule() Dim LeCellFormat As CellFormat Dim Trouve As Range, Adr As String Dim Sh As Worksheet, Rg As Range 'Nom feuille à adapter Set Sh = Worksheets("Feuil1") Set LeCellFormat = Application.FindFormat With LeCellFormat .Clear .Interior.Color = Sh.Range("A1").Interior.Color End With With Sh 'Définir la plage de cellules Set Rg = .Range("C5:C25") End With With Rg Set Trouve = .Find(What:="", _ Searchdirection:=xlNext, _ SearchFormat:=True) If Not Trouve Is Nothing Then Adr = Trouve.Address Do With Trouve MsgBox Trouve.Address 'Ton code pour faire ce que 'tu désires avec ces cellules End With Set Trouve = .Find(What:="", _ After:=Trouve, SearchFormat:=True) Loop Until Trouve.Address = Adr Or Trouve Is Nothing End If End With End Sub '-------------------------------------------------------------------- MichD "Alf" a écrit dans le message de groupe de discussion : Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous, De retour pour solliciter votre aide. J'ai une feuille avec plusieurs lignes et plusieurs colonnes. Certaines cellules ont un fond de cellule avec une couleur donnée (on va dire orange). Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée. Je me demande si la méthode .find peut être utilisée. Merci pour votre aide Alf
Toutes les solutions marchent.... Mais c'est un peu long si on a 50000 lignes. J'ai essayé avec ce code, mais il ne me renvoie que des lignes où les cellules sont sans couleur de fond: '---------- Set C = Worksheets("Feuil1").Range("A:A") _ .Find((Application.FindFormat.Interior.ColorIndex = 44), LookAt:=xlPart, SearchFormat:=True) If Not C Is Nothing Then FirstAddress = C.Address Do 'Traitement quelconque ligne=c.row Set C = Range("A:A").Find((Application.FindFormat.Interior.ColorIndex = 45), C, , xlPart, , xlNext, True) Loop While Not C Is Nothing And C.Address <> FirstAddress End If
Il y a ceci :
Cette ligne de code est là simplement pour trouver
le code "Color" que tu cherches. Si tu désires, tu peux
utiliser la propriété ColorIndex...
Si tu connais la valeur recherchée, tu peux l'indiquer
directement
Exemple :
'En supposant que A1 a la couleur de fond que tu recherches
.Interior.Color = Sh.Range("A1").Interior.Color
'ou simplement :
.Interior.Color = 255 'la valeur seulement
'--------------------------------------------------------------------
Sub Rechercher_Format_Cellule()
Dim LeCellFormat As CellFormat
Dim Trouve As Range, Adr As String
Dim Sh As Worksheet, Rg As Range
'Nom feuille à adapter
Set Sh = Worksheets("Feuil1")
Set LeCellFormat = Application.FindFormat
With LeCellFormat
.Clear
.Interior.Color = Sh.Range("A1").Interior.Color
End With
With Sh
'Définir la plage de cellules
Set Rg = .Range("C5:C25")
End With
With Rg
Set Trouve = .Find(What:="", _
Searchdirection:=xlNext, _
SearchFormat:=True)
If Not Trouve Is Nothing Then
Adr = Trouve.Address
Do
With Trouve
MsgBox Trouve.Address
'Ton code pour faire ce que
'tu désires avec ces cellules
End With
Set Trouve = .Find(What:="", _
After:=Trouve, SearchFormat:=True)
Loop Until Trouve.Address = Adr Or Trouve Is Nothing
End If
End With
End Sub
'--------------------------------------------------------------------
MichD
"Alf" a écrit dans le message de groupe de discussion :
ba272387-06f2-4c0c-a0c8-1b86ea410eec@googlegroups.com...
Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous,
De retour pour solliciter votre aide.
J'ai une feuille avec plusieurs lignes et plusieurs colonnes.
Certaines cellules ont un fond de cellule avec une couleur donnée (on va
dire orange).
Je voudrais rechercher ces cellules spécifiques mais uniquement dans une
colonne donnée.
Je me demande si la méthode .find peut être utilisée.
Merci pour votre aide
Alf
Toutes les solutions marchent....
Mais c'est un peu long si on a 50000 lignes.
J'ai essayé avec ce code, mais il ne me renvoie que des lignes où les
cellules sont sans couleur de fond:
'----------
Set C = Worksheets("Feuil1").Range("A:A") _
.Find((Application.FindFormat.Interior.ColorIndex = 44), LookAt:=xlPart,
SearchFormat:=True)
If Not C Is Nothing Then
FirstAddress = C.Address
Do
'Traitement quelconque
ligne=c.row
Set C =
Range("A:A").Find((Application.FindFormat.Interior.ColorIndex = 45), C, ,
xlPart, , xlNext, True)
Loop While Not C Is Nothing And C.Address <> FirstAddress
End If
Il y a ceci : Cette ligne de code est là simplement pour trouver le code "Color" que tu cherches. Si tu désires, tu peux utiliser la propriété ColorIndex... Si tu connais la valeur recherchée, tu peux l'indiquer directement Exemple : 'En supposant que A1 a la couleur de fond que tu recherches .Interior.Color = Sh.Range("A1").Interior.Color 'ou simplement : .Interior.Color = 255 'la valeur seulement '-------------------------------------------------------------------- Sub Rechercher_Format_Cellule() Dim LeCellFormat As CellFormat Dim Trouve As Range, Adr As String Dim Sh As Worksheet, Rg As Range 'Nom feuille à adapter Set Sh = Worksheets("Feuil1") Set LeCellFormat = Application.FindFormat With LeCellFormat .Clear .Interior.Color = Sh.Range("A1").Interior.Color End With With Sh 'Définir la plage de cellules Set Rg = .Range("C5:C25") End With With Rg Set Trouve = .Find(What:="", _ Searchdirection:=xlNext, _ SearchFormat:=True) If Not Trouve Is Nothing Then Adr = Trouve.Address Do With Trouve MsgBox Trouve.Address 'Ton code pour faire ce que 'tu désires avec ces cellules End With Set Trouve = .Find(What:="", _ After:=Trouve, SearchFormat:=True) Loop Until Trouve.Address = Adr Or Trouve Is Nothing End If End With End Sub '-------------------------------------------------------------------- MichD "Alf" a écrit dans le message de groupe de discussion : Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous, De retour pour solliciter votre aide. J'ai une feuille avec plusieurs lignes et plusieurs colonnes. Certaines cellules ont un fond de cellule avec une couleur donnée (on va dire orange). Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée. Je me demande si la méthode .find peut être utilisée. Merci pour votre aide Alf
Toutes les solutions marchent.... Mais c'est un peu long si on a 50000 lignes. J'ai essayé avec ce code, mais il ne me renvoie que des lignes où les cellules sont sans couleur de fond: '---------- Set C = Worksheets("Feuil1").Range("A:A") _ .Find((Application.FindFormat.Interior.ColorIndex = 44), LookAt:=xlPart, SearchFormat:=True) If Not C Is Nothing Then FirstAddress = C.Address Do 'Traitement quelconque ligne=c.row Set C = Range("A:A").Find((Application.FindFormat.Interior.ColorIndex = 45), C, , xlPart, , xlNext, True) Loop While Not C Is Nothing And C.Address <> FirstAddress End If
Alf
Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous, De retour pour solliciter votre aide. J'ai une feuille avec plusieurs lignes et plusieurs colonnes. Certaines cellules ont un fond de cellule avec une couleur donnée (o n va dire orange). Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée. Je me demande si la méthode .find peut être utilisée. Merci pour votre aide Alf
Tout est OK Merci à tous pour votre aide
Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous,
De retour pour solliciter votre aide.
J'ai une feuille avec plusieurs lignes et plusieurs colonnes.
Certaines cellules ont un fond de cellule avec une couleur donnée (o n va dire orange).
Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée.
Je me demande si la méthode .find peut être utilisée.
Merci pour votre aide
Alf
Le samedi 16 décembre 2017 12:00:11 UTC+1, Alf a écrit :
Bonjour à tous, De retour pour solliciter votre aide. J'ai une feuille avec plusieurs lignes et plusieurs colonnes. Certaines cellules ont un fond de cellule avec une couleur donnée (o n va dire orange). Je voudrais rechercher ces cellules spécifiques mais uniquement dans une colonne donnée. Je me demande si la méthode .find peut être utilisée. Merci pour votre aide Alf