Extraction de cellules en couleur

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

amdur

XLDnaute Nouveau
Bonjour,

Mon but est de faire une extraction des cellules en couleur (le fond de la cellule étant en couleur) pour chaque colonne de haut en bas ensuite on passe à la deuxième colonne etc... pour toute ma base et disposer ces données ainsi que la couleur du fond de cellule sur une seule colonne avec en titre de la colonne ce que je souhaite et ceci dans une autre feuille de calcul.

Svp comment dois-je adapter la macro qui a été proposée dans le sujet " extraire des cellules de couleur".


PS: Je suis novice en macro, svp quelque chose de simple à comprendre serait grandement apprécié.


Merci d'avance pour votre aide.


A bientôt.
 
Re : Extraction de cellules en couleur

Bonjour amdur,

Bien que novice en macro, avec un peu d'effort vous devriez comprendre :

Code:
Sub Copie()
'Feuil1 et Feuil2 sont les CodeNames des feuilles
Dim P As Range, nlig As Long, col As Integer, lig As Long, n As Long
Set P = Feuil1.UsedRange 'source
nlig = P.Rows.Count
Feuil2.Rows("2:" & Rows.Count).Delete 'RAZ
n = 2 '1ère ligne de destination
For col = 1 To P.Columns.Count
  For lig = 1 To nlig
    If P(lig, col).Interior.ColorIndex <> xlNone Then
      With Feuil2.Cells(n, 1)
        .Value = P(lig, col)
        .Interior.Color = P(lig, col).Interior.Color
      End With
      n = n + 1 'ligne suivante
    End If
  Next
Next
Feuil2.Columns(1).AutoFit 'ajustement largeur
End Sub
Comme demandé, la macro copie la valeur et la couleur de la cellule colorée.

S'il faut d'autres mises en forme, joignez le fichier.

A+
 
Re : Extraction de cellules en couleur

Re,

Si l'on veut copier toute la mise en forme on peut faire un Copier/Collage spécial-Formats :

Code:
Sub Copie()
'Feuil1 et Feuil2 sont les CodeNames des feuilles
Dim P As Range, nlig As Long, col As Integer, lig As Long, n As Long
Set P = Feuil1.UsedRange 'source
nlig = P.Rows.Count
Application.ScreenUpdating = False 'fige l'écran
Feuil2.Rows("2:" & Rows.Count).Delete 'RAZ
n = 2 '1ère ligne de destination
For col = 1 To P.Columns.Count
  For lig = 1 To nlig
    If P(lig, col).Interior.ColorIndex <> xlNone Then
      P(lig, col).Copy
      With Feuil2.Cells(n, 1)
        .PasteSpecial xlPasteFormats
        .Value = P(lig, col)
      End With
      n = n + 1 'ligne suivante
    End If
  Next
Next
Application.Goto Feuil2.[A1], True
Feuil2.Columns(1).AutoFit 'ajustement largeur
End Sub
A+
 
Dernière édition:
- 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
7
Affichages
176
Retour