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

Mise en forme conditionnelle automatique après copier coller

  • Initiateur de la discussion Initiateur de la discussion lanoe
  • 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 !

lanoe

XLDnaute Occasionnel
Bonjour,

J’ai un macro qui copier/coller d’un ou plusieurs lignes (le nombre de ligne est variable). Les "coller" se réalisent les uns à la suite des autres. Pour mieux identifier chaque copier/coller je désire colorer alternativement en bleu et vert chaque coller.
Pièce jointe.

Merci d’avance
Lanoe
 

Pièces jointes

Re : Mise en forme conditionnelle automatique après copier coller

Bonjour Lanoe,

regarde la macro ci dessous, si j'ai bien compris :

Code:
Sub test2()
Dim i As Byte
With Sheets("Feuil1")
    .Range("A2:B6").SpecialCells(xlCellTypeVisible).Copy
    i = (.Range("A2:B6").SpecialCells(xlCellTypeVisible).Count / 2) - 1
End With
With Sheets("Feuil2")
    If .Range("A65536").End(xlUp).Interior.ColorIndex = 34 Then
        .Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
        .Range(.Range("A65536").End(xlUp).Offset(-i, 0), .Range("A65536").End(xlUp) _
            .Offset(0, 1)).Interior.ColorIndex = 35
        ElseIf .Range("A65536").End(xlUp).Interior.ColorIndex = 35 Then
            .Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
            .Range(.Range("A65536").End(xlUp).Offset(-i, 0), .Range("A65536").End(xlUp) _
                .Offset(0, 1)).Interior.ColorIndex = 34
    Else
        MsgBox "couleur non répertoriée"
    End If
End With
End Sub

bon après midi
@+
 
Dernière édition:
Re : Mise en forme conditionnelle automatique après copier coller

Bonjour,

Je n'arrive pas à adapter le macro j'ai la réponse "couleur non répertoriée".

Est-il possible de l'adapter à mon fichier en piece jointe sur le premier message.

Merci d'avance

Lanoe
 
Re : Mise en forme conditionnelle automatique après copier coller

Re

attention, vérifies avec l'enregistreur de macro, que les numéros d'index renvoyés correspondent bien avec les numéros indiqués dans la macro...

@+
 
Re : Mise en forme conditionnelle automatique après copier coller

Re Bonjour,

Je bloque pour adapter le macro, il fonctionne parfaitement dans le fichier d'origine, mais quand je le copie intégralement dans un autre fichier j’ai la mention "couleur non répertoriée". J’ai vérifié par l’enregistreur les couleurs :
Range("D14").Select
With Selection.Interior
.ColorIndex = 34
.Pattern = xlSolid
End With
Range("D19").Select
With Selection.Interior
.ColorIndex = 35
.Pattern = xlSolid
End With

Je dois faire une erreur mais ou ???

Lanoé
 
Re : Mise en forme conditionnelle automatique après copier coller

Bonjour Lanoe

sur la feuille de destination, la dernière cellule de la colonne A, a bien une couleur ayant le numéro d'index 34 ou 35 ?

bonne journée
@+
 
Re : Mise en forme conditionnelle automatique après copier coller

Re
Effectivement le problème vient d'ici car quand je copie intégralement la feuille de réception sur mon nouveau fichier cela fonctionne. Pour ma culture perso comment faire car sur le fichier d’origine la dernière cell de la col A me semble pas avoir de particularité ? (pas de coloration 34 ou 35)

Lanoe
 
Re : Mise en forme conditionnelle automatique après copier coller

Re

j'ai modifié un peu la macro, regarde si cela fonctionne mieux :

Code:
Sub Macro1()
Dim i As Byte
With Sheets("Feuil1")
    .Range("A2:B6").SpecialCells(xlCellTypeVisible).Copy
    i = (.Range("A2:B6").SpecialCells(xlCellTypeVisible).Count / 2) - 1
End With
With Sheets("Feuil2")
    If .Range("A65536").End(xlUp).Interior.ColorIndex = 34 Then
        .Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
        .Range(.Range("A65536").End(xlUp).Offset(-i, 0), .Range("A65536").End(xlUp) _
            .Offset(0, 1)).Interior.ColorIndex = 35
    Else
        .Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlValues
        .Range(.Range("A65536").End(xlUp).Offset(-i, 0), .Range("A65536").End(xlUp) _
            .Offset(0, 1)).Interior.ColorIndex = 34
    End If
End With
End Sub


@+

Edition : si il n'y a pas de couleur, dans la dernière cellule, celle ci fera mieux l'affaire...
 
- 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

Discussions similaires

Réponses
5
Affichages
665
W
Réponses
6
Affichages
342
Réponses
11
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…