Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/10/2011, 12h36   #1
Invité de passage
 
Homme
Inscription : octobre 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2011
Messages : 10
Points : 4
Points : 4
Par défaut Copier uniquement les Couleurs de fond des cellules sur Excel 2007

Bonjour à tous(tes),
Je dispose d'un tableau Excel et je souhaite copier les couleurs de fond des cellules à savoir :
Je dispose par exemple d'une plage de cellules ''A1-Q1'' dont je souhaiterai reproduire les couleurs sur les 12 lignes en dessous, ou si préferez : recopier sur les 12 lignes du dessous juste les couleurs de fond.
J'ai essayé avec ''mise en forme conditionnelle'' mais ça ne fonctionne pas. Alors est il possible de développer une macro pour que la tache puisse être automatisée?

Merci par avance
Fher
fherolvera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 12h45   #2
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour

Quelque chose comme

Code :
1
2
3
4
5
6
7
8
Dim CompA As Byte
Dim CompB As Byte
 
For CompA = 2 To 12
    For CompB = 1 To 17
        Cells(CompA, CompB).Interior.ColorIndex = Cells(CompA - 1, CompB).Interior.ColorIndex
    Next CompB
Next CompA
Tu dis

Bon courage
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 18/10/2011, 21h08   #3
Invité de passage
 
Homme
Inscription : octobre 2011
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2011
Messages : 10
Points : 4
Points : 4
Par défaut MERCI BEAUCOUP!!

Merci Jean-Pierre,
C'est exactement ce que je voulais faire.
J'ai adapté la Macro mais ta base est super

Merci Beaucoup
fherolvera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 21h19   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonsoir
Pour économiser une boucle, on peut travailler colonne par colonne (pour cette exemple le temps d’exécution n'est pas visible mais tant mieux, il faudrait avoir le reflexe d'optimiser les boucles)
Une autre remarque, il faudrait aussi préfixer les Range et Cells par leur feuille mère (et aussi avec le classeur grand père au cas où on travaille avec plusieurs classeurs). Un adressage complet évite toujours de mauvaise surprises.
Code :
1
2
3
4
5
6
7
8
9
Sub Test()
Dim i As Byte
 
With Worksheets("Feuil1")
    For i = 1 To 17
        .Range(.Cells(2, i), .Cells(12, i)).Interior.Color = .Cells(1, i).Interior.Color
    Next i
End With
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/10/2011, 08h14   #5
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour mercatog

Je suis d’accord sur tes remarques

Mais j’ai une remarque sur le résultat de ton code

Si une cellule sur la ligne 1 une cellule avec
Code :
.Interior.ColorIndex = xlNone
Ton code lui donne
Code :
.Interior.ColorIndex = 2
Sur les lignes suivantes

En tout cas chez moi
Ce qui, je suis d’accord, est surprenant
Nota : Je suis sur Excel 2003

Cordialement

Bonne journée
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/10/2011, 11h41   #6
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonjour Jean Pierre.
Mon intervention était pour arriver au résultat avec une seule boucle au lieu de 2.
Code :
1
2
3
4
5
6
7
8
9
Sub Test()
Dim i As Byte
 
With Worksheets("Feuil1")
    For i = 1 To 17
        .Range(.Cells(2, i), .Cells(12, i)).Interior.ColorIndex = .Cells(1, i).Interior.ColorIndex
    Next i
End With
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h24.


 
 
 
 
Partenaires

Hébergement Web