Recherche en VBA la prochaine cellule d'une couleur de n'importe quelle valeur

Fermé
sfa11 - 12 mai 2021 à 11:51
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 - 12 mai 2021 à 13:08
Bonjour,

Je cherche une macro VBA excel qui lorsque que l'utilisateur clique sur un bouton, le curseur se positionne sur la prochaine cellule ayant une couleur de fond particulière mais n'importe quelle valeur.

J'ai essayé en utilisant les fonctions Find et Find next mais cela ne marche pas car je n'ai pas de valeur précise à chercher.

Merci beaucoup pour votre aide
A voir également:

1 réponse

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
12 mai 2021 à 11:53
bonjour,
je pense qu'il suffit de parcourir les cellules et de s'arrêter quand la bonne couleur aura été trouvée.
0
D'accord merci mais comment le faire en VBA ? quelles sont les instructions pour y arriver ?
0
sfa11 > sfa11
12 mai 2021 à 12:25
Ci-dessous mon code vba qui ne marche pas car Il se positionne sur la première cellule trouvée ayant la bonne couleur mais après, à chaque clic sur le bouton, il se positionne sur la cellule suivante alors qu'elle n'a pas la bonne couleur
Private Sub CommandButton1_Click()
'recherche les différences de couleur bleue


Range("A1:Z500").Select
With Application.FindFormat.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = RGB(183, 222, 232)
.TintAndShade = 0
.PatternTintAndShade = 0
End With

ActiveSheet.Cells.Find(What:="", LookIn:=xlValues, LookAt:=xlPart, SearchFormat:=True).Activate

'MsgBox ActiveCell.Find(What:="", LookIn:=xlValues, LookAt:=xlPart, SearchFormat:=True).Activate
Do While MsgBox("Voulez-vous continuer la recherche ? ", vbYesNo, "Demande de confirmation") = vbYes
With Application.FindFormat.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = RGB(183, 222, 232)
.TintAndShade = 0
.PatternTintAndShade = 0

End With
Cells.FindNext(After:=ActiveCell).Activate


Loop
End Sub

Merci pour votre aide
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > sfa11
12 mai 2021 à 12:26
il y a de multiples façons de faire cela.
tu ne précises pas où il faut commencer, dans quelle direction chercher, ni où s'arreter.

quelques exemples:
https://docs.microsoft.com/fr-fr/office/troubleshoot/excel/loop-through-data-using-macro
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > sfa11
12 mai 2021 à 12:27
merci d'utiliser les balises quand tu partages du code VBA est du basic): https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > sfa11
12 mai 2021 à 12:34
un exemple:
Option Explicit

Private Sub cc()
Dim rg As Range, cl As Range
Set rg = Range("A1:Z50")
For Each cl In rg
    If cl.Interior.Color = RGB(183, 222, 232) Then
        cl.Select
        Exit For
    End If
Next cl
End Sub
0