Mettre plusieurs ligne de couleur selon la sélection

Résolu
bassmart Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   -  
bassmart Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai une macro affecté à un Userform, qui mets en couleur la ligne sélectionné entre la colonne A et N.

Pour le moment, ma macro fonctionne mais si je sélectionne plusieurs lignes, il applique la couleurs seulement sur la première ligne. J'ai essayé le code suivant mais sans succès!

Comment puis-je modifier mon code pour qu'il applique la couleur sur toutes les lignes sélectionnées.

Voici mon code:
Private Sub OptionButton1_Click()


ActiveSheet.Unprotect

Dim c As Range
Dim maplage As Range
Dim l As Long

l = ActiveCell.Row

Set maplage = Range("a" & l & ":N" & l)

If TypeName(Selection) = "Range" Then
    For Each c In Selection
        maplage.Interior.ColorIndex = 3
    Next
End If

ActiveSheet.Protect
        
End Sub
A voir également:

2 réponses

bassmart Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   1
 
Première piste trouvé, j'ai passé un espion sur la valeur de "c" et il se déplace d'une colonne à l'autres sur la même ligne jusqu'au bout (colonne N) et sort de la macro.

Pourquoi, il ne se déplace pas sur la prochaine ligne?

Merci!
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
Ceci ne colore en rouge que la plage sélectionnée
Private Sub OptionButton1_Click()
    Dim c As Range
    Dim l As Long
    ActiveSheet.Unprotect
    maplage = Selection.Address
    Range(maplage).Interior.ColorIndex = 3
    ActiveSheet.Protect
End Sub

cdlt
0
bassmart Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour Frenchie83!

Effectivement! Ça colore en rouge la plage sélectionnée.

Mais ce que je veux, c'est que dans la sélection qu'il colore en rouge toute les lignes entre les colonnes A et N sans avoir à sélectionner toute la ligne manuellement.

Merci!
0
PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   26
 
Bonjour

"colore en rouge toute les lignes entre les colonnes A et N"

C'est que entre A et N,,, ce sont des colonnes,,, (A.B,C,D,E,,,,)

Tu as défini la variable "L" pour les ligne. "L" est assigné avec ActiveCell.Row et c'est tout.
La seule ligne de spécifiée c'est la ligne de la cellule active.

Si tu veux boucler sur plusieurs lignes... lequelles ?
0
bassmart Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   1 > PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour PlacageGranby!

Ce que je veux, c'est que lorsque je sélectionne une plage de cellules sur plusieurs lignes (ex: les cellules N18, N19, N20) qui correspond au ligne 18, 19 et 20. Que la macro me colore les lignes 18,19 et 20 entre la colonne A et N en rouge. Les cellules sélectionnées peuvent être dans n'importe qu'elle colonne, elle ne sert qu'à déterminer la ligne à colorer.

J'espère que c'est clair!?

Merci!
0
PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention   26
 
Bonjour,

Au plus simple : ceci pourrait être fonctionnel

Sub  OptionButton1_Click()

ActiveSheet.Unprotect

Dim LDebut, LFin As Long

LDebut = Selection.Row
LFin = LDebut + Selection.Rows.Count - 1
Range("A" & LDebut & ":N" & LFin).Interior.ColorIndex = 3

ActiveSheet.Protect

End Sub
0
bassmart Messages postés 281 Date d'inscription   Statut Membre Dernière intervention   1 > PlacageGranby Messages postés 393 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup PlacageGranby!

C'est exactement ça! C'est fou comme le code est court!

Je me compliquais la vie! C'est ça quand on débute!

Encore merci!
0