Selectionner des lignes sous condition
Résolu
Kuartz
Messages postés
852
Date d'inscription
Statut
Membre
Dernière intervention
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,
Dans un très long tableau, je cherche à sélectionner les lignes entre 2 couleurs. Je m'explique, je sélectionne une cellule du tableau et je veux sélectionner les lignes jusqu'à la prochaine ligne en violet.
J'ai essayé un code mais sans succès :
Merci d'avance pour votre aide.
Cordialement.
Dans un très long tableau, je cherche à sélectionner les lignes entre 2 couleurs. Je m'explique, je sélectionne une cellule du tableau et je veux sélectionner les lignes jusqu'à la prochaine ligne en violet.
J'ai essayé un code mais sans succès :
Sub TEST()
DL = Sheets("NATIONAL").Cells(Application.Rows.Count, 23).End(xlUp).Row
Ligne = ActiveCell
For i = Ligne To DL
Do While Range("A" & i).Interior.Color <> RGB(128, 0, 128)
Rows(i).Select
Loop
Next i
End Sub
Merci d'avance pour votre aide.
Cordialement.
7 réponses
-
Bonjour,
2 questions :
1- la couleur violette est une couleur de cellule ou due à une MFC?
2- pourquoi sélectionner?
-
Bonjour,
Essaye ca plutot :Sub TEST()
DL = Sheets("NATIONAL").Cells(Application.Rows.Count, 23).End(xlUp).Row
ligne = ActiveCell.Row
For i = ligne To DL
If Range("B" & i).Interior.Color = RGB(128, 0, 128) Then
Rows(ligne & ":" & i).Select
End If
Next i
End Sub
Cordialement, -
Bonjour,
J'avais fait cela il y a quelque temps, il faudra mettre un point d'arrêt et adapter:
https://forums.commentcamarche.net/forum/affich-31994139-comment-savoir-si-une-cellule-est-colorer-ou-non-sur-vba#2
-
Je n'ai pas spécialement besoin de ça, la cellule étant colorée en violet sans MFC, pas besoin de condition (si couleur....). Je voudrais juste avoir accès à la ligne après ma cellule sélectionnée jusqu'à la prochaine ligne violette et je rajoute à ma demande (pardon, pas pris en compte au départ) ou jusqu'à la prochaine ligne vide.
-
-
Bonjour,
pour la ligne cellule active:
Ligne = ActiveCell.Row
ensuite si la couleur est d'une MFC, prendre le meme test pour le code VBA -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Non, ce n'est pas une MFC, simplement une couleur de cellule.
On n'est pas obligé de sélectionner, je vais simplement copier/coller ces données. Je cherche simplement à y avoir accès. Je vais regarder ton lien cs_Le Pivert, merci.-
J'ai essayé ce code mais il ne marche pas :
Dim Col As Range, C As Range Ligne = ActiveCell.Row For Each C In Range(Cells(Ligne, 1), Cells(5000, 1)) If C.Interior.Color = RGB(128, 0, 128) Then C.Row = Ligne2 Range(Cells(Ligne, 1), Cells(Ligne2, 23)).Select Exit For End If Next End Sub
Pourtant j'avais bon espoir..
-
-
Dans mon code tu as tout pour faire ce que tu veux, numéro de ligne et colonne, il faut bien les placer!
Tu as les commentaires
-
Trouvé. Le code modifié :
Dim C As Range Ligne = ActiveCell.Row For Each C In Range(Cells(Ligne + 1, 1), Cells(5000, 1)) If C.Interior.Color = RGB(128, 0, 128) Then Ligne2 = C.Row Range(Cells(Ligne + 1, 1), Cells(Ligne2 - 1, 23)).Select Exit For End If Next End Sub
Il me faut encore prévoir que si il n'y a pas de ligne violette, alors jusqu'à la dernière ligne mais ca devrait le faire.
Merci à tous.