Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Comment étendre l'action d'une macro à 3 plages de colonnes?

  • Initiateur de la discussion Initiateur de la discussion Halffy
  • Date de début Date de début

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 !

Halffy

XLDnaute Occasionnel
Bonjour le Forum,
Heureux de constater que les habitués sont toujours fidèles au poste 😱
de toute façon, que faire d'autre... il pleut (ici en Normandie) 😀
Un nouveau problème à vous suggérer avec votre permission; j'ai une macro qui me permet de trier & d'alterner des lignes de couleurs, pour une colonne nommée ==> ça marche très bien 🙂
Mais comment étendre l'action de la macro à des plages de colonnes? Et là ça marche moins bien 🙁
Un fichier joint pour plus amples explications / alors si vous aviez un peu de temps à me consacrer; je vous en remercierais par avance, et vous souhaite une bonne journée.
Halffy /.
 

Pièces jointes

Dernière édition:
Re : Comment étendre l'action d'une macro à 3 plages de colonnes?

Bonjour Halfy,

Voici un code qui me semble-t-il fonctionne bien :
VB:
Sub coloriage()
    Application.ScreenUpdating = False
    Couleur = 6
    For i = 16 To [B65000].End(xlUp).Row
        If Cells(i, 2) <> Cells(i - 1, 2) Then Couleur = IIf(Couleur = 36, 6, 36)
        Union(Range("B" & i & ":G" & i), Range("I" & i), Range("K" & i & ":M" & i)).Interior.ColorIndex = Couleur
    Next i
    Application.ScreenUpdating = True
End Sub

A+
 
Re : Comment étendre l'action d'une macro à 3 plages de colonnes?

bonjour

comme ceci peut-être
Code:
Sub coloriage()
Application.ScreenUpdating = False
Couleur = 6
For i = 16 To [B65000].End(xlUp).Row
If Cells(i, 2) <> Cells(i - 1, 2) Then Couleur = IIf(Couleur = 36, 6, 36)
Range(Cells(i, 2), Cells(i, 7)).Interior.ColorIndex = Couleur
Cells(i, 9).Interior.ColorIndex = Couleur
Range(Cells(i, 11), Cells(i, 13)).Interior.ColorIndex = Couleur
Next i
Application.ScreenUpdating = True
End Sub
 
Re : Comment étendre l'action d'une macro à 3 plages de colonnes?

Bonjour,
Dans la macro changes cette lignes
Code:
If Cells(i, 2) <> Cells(i - 1, 2) Then Couleur = IIf(Couleur = 36, 6, 36)
Intersect(Range("B:G, I:I, K:M"), Rows(i)).Interior.ColorIndex = Couleur 'ici
Next i
A+
kjin
 
Re : Comment étendre l'action d'une macro à 3 plages de colonnes?

Bonjour.
Avec un bouton de commande nommé "BtTriCoul" plutôt que le bouton de formulaire qui n'a pas fonctionné :
VB:
Option Explicit
'
Private Sub BtTriCoul_Click()
Dim Couleur As Long, I As Long
Application.ScreenUpdating = False
Couleur = 6
For I = 16 To [B65000].End(xlUp).Row
   If Cells(I, 2) <> Cells(I - 1, 2) Then Couleur = IIf(Couleur = 36, 6, 36)
   Cells(I, 2).Resize(, 6).Interior.ColorIndex = Couleur
   Cells(I, 11).Resize(, 3).Interior.ColorIndex = Couleur
   Next I
Application.ScreenUpdating = True
End Sub
Mais une mise en forme conditionnelle avec comme formule "=MOD($B16;2)=0" est peut être plus satisfaisant...
{A +
 
Re : Comment étendre l'action d'une macro à 3 plages de colonnes?

Re, à tous: Fred0o, Gilbert_RGI, Kjin, Dranreb
Merci, Merci Messieurs de vos contributions, elles fonctionnent toutes très bien (les unes plus ou moins longues que les autres, mais elles fonctionnent parfaitement) & Je vous remercie du temps consacré 😎
Une précision tout de même: Dranreb, je ne voulais pas passer par de la MFC car les fonctionnalités de mon fichier sont plus complexes que ce "bout de programme", et demande plus de subtilités; toutefois ta solution marche également.
Et surtout vos macro fonctionnent en harmonie avec les miennes.
Alors encore Merci, et bon Week-End à tous.
Halffy /.
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…