Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
En tant que très grand débutant en vba et pas du tout informaticien, je viens chercher un peu d'aide dans ce forum.
Je souhaite trouver une macro qui parcourrait les cellules d'une colonne active et s'arrêterait sur les cellules en couleur.
Pour être plus précis, je souhaiterais qu'elle ait les comportements suivants.
Doit sauter :
- Les cellules remplies ou vides et sans couleur
- Les cellules remplies ou vides en noir
Doit s'arrêter sur :
- Les cellules remplies ou vides et en couleur (sauf le noir)
- La dernière cellule utilisée dans la colonne (son emplacement peut varier), en indiquant par un message qu'elle a été atteinte.
L'idéal, si possible, serait qu'elle puisse effectuer les recherches vers le bas et le haut (au choix de l'utilisateur).
La seule chose que j'ai pu "bricoler" pour l'instant est le code suivant, avec ses (grosses) lacunes ;-) :
Code:
Sub SearchColorDown()
Do
Selection.Offset(1, 0).Select
Loop Until ActiveCell.Interior.ColorIndex <> xlColorIndexNone
End Sub
Le fichier joint sera peut-être plus clair.
Merci d'avance à ceux qui voudront bien m'apporter leurs lumières !
Re : Parcourir une colonne jusqu'à une cellule en couleur
Waouh, merci pour cette réponse express jmps !
À première vue, ton code correspond exactement à ce que je recherchais.
Je vais pouvoir le décortiquer et voir comment il fonctionne.
Re : Parcourir une colonne jusqu'à une cellule en couleur
Le code ne marchait que pour la colonne A. J'ai donc modifié la variable Der pour qu'il prenne en compte la colonne de la cellule active :
Code:
Sub SearchColorDown()
Dim Der As Long
Der = Cells(65536, ActiveCell.Column).End(xlUp).Row
If ActiveCell.Row >= Der Then
MsgBox "Dernière ligne atteinte."
Exit Sub
End If
Do
Selection.Offset(1, 0).Select
Loop Until (ActiveCell.Interior.ColorIndex <> xlColorIndexNone And ActiveCell.Interior.ColorIndex <> 1) Or ActiveCell.Row = Der
End Sub
Sub SearchColorUp()
Dim Der As Long
Der = 2
If ActiveCell.Row <= Der Then
MsgBox "Première ligne atteinte."
Exit Sub
End If
Do
Selection.Offset(-1, 0).Select
Loop Until (ActiveCell.Interior.ColorIndex <> xlColorIndexNone And ActiveCell.Interior.ColorIndex <> 1) Or ActiveCell.Row = Der
End Sub
Re : Parcourir une colonne jusqu'à une cellule en couleur
Merci jmps,
J'ai l'habitude de chercher par moi-même avant de demander de l'aide. 🙂
Dans ce cas précis, j'avais atteins mes limites et il me fallait un coup de main.
En regardant ton code, je vois que j'avais en tête toutes les pièces du puzzle (trouver la dernière ligne, exclure une couleur, etc). Je ne savais tout simplement pas comment les "écrire" et les combiner, vu que je connais pas la "grammaire" du vba.
Re: Re : Parcourir une colonne jusqu'à une cellule en couleur
Rebonjour,
Encore merci à toi jmps pour ton aide.
Je souhaiterais apporter une modification au code pour la recherche des couleurs vers le bas.
Le problème avec le code actuel est qu'il s'arrête à la dernière cellule remplie. Or, il peut arriver que ma véritable "dernière" cellule soit en couleur et vide.
Donc, est-il possible d'intégrer ce paramètre à la variable Der ?
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD