macro couleur de cell

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

J

jean michel

Guest
bonjour à tous,

j'ai encore besoin de votre aide
je galère sur une macro

je voudrais écrire une macro capable de scanner dans une page toutes les cellule peintes en jaune (colorIndex = 36) et qu'ensuite elle copie colle en valeur uniquement ces champs de cellules

ma question se décompose donc en plusieurs questions auxquelles vous pourrez pt répondre :
1. comment dire à une macro de chercher toutes les cellules peintes en jaunes
2. comment lui dire de sélectionner les cellule jaunes
3. lui dire de faire un copy paste value only (ca je devrait m'en sortir)

Merci d'avance pour votre aide

cordialement
JM
 
Bonjour Jean Michel, bonjour le forum,

Je te propose une solution qui utilise un tableau dynamique qui enregistre les cellules peintes en jaunes sur une plage donnée (à adapter à ton cas) puis, les restitue dans une autre feuille :


Sub Macro1()
Dim Cel As Range 'déclare la variable Cel
Dim Tabl() As Variant 'déclare le tableau de variable Tabl
Dim x As Integer 'déclare la variable x
Dim y As Integer 'déclare la variable y

x = 0 'définit la variable x
For Each Cel In Range('A1:B10') 'boucle sur toutes les cellule de la plage (plage à adapter à ton cas)
If Cel.Interior.ColorIndex = 36 Then 'condition : si la cellule Cel est jaune
ReDim Preserve Tabl(x) 'redimensionne le tableau Tabl
Tabl(x) = Cel.Value 'ajoute la valeur de la cellule au tableau de variables
x = x + 1 'redéfinit la variable x
End If 'fin de la condition
Next Cel 'prochaine cellule de la plage

For y = 0 To UBound(Tabl, 1) 'boucle sur toutes les valeurs du tableau
'sélectionne la feuille 'tafeuille' (à adapter) et
'restitue les valeurs dans la colonne A (à partir de A1)
Sheets('tafeuille').Cells(y + 1, 1).Value = Tabl(y)
Next y

End Sub
 
utiliser l'instruction
for each cellule in 'la feuille en question'.cells
if interior.colorindex = xxxx (à désigner)
.....faire ceci ou cela

next cellule

c'est une bonne base pour réussir
utilisez l'aide de VBA pour ne pas faire d'erreur de syntaxe ou ... d'orthographe

bon courage, et à plus tard peut-être
 
la sélection des cellules se fait par l'instruction if interior.colorindex =
suivi du numéro de la couleur à trouver.
s'il y a plusieurs nuances de jaune à trouver, il faut les répertorier toutes et modifier l'instruction
if interior.colorindex = numéro1 or interior.colorindex= numéro2...etc.

on peut aussi placer toutes les valeurs de couleur dans une suite de cellules contigües (ou pas) lui attribuer un nom 'mescellules'et utiliser
for each cellule in mescellules
if....colorindex....etc
 
si je te donne un exemple peux-tu regarder stp et me dire ou cela plante

je te remercie par avance


JM [file name=colormacro.zip size=8060]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/colormacro.zip[/file]
 

Pièces jointes

et bien pascal tu as encore frappé très fort du moins tu réponds toujours aussi bien à mes questions

mais pour transformer l'essai un peu d'explication me ferait le plus grand bien

peux-tu me dire ce que signifieSpecialCells(xlCellTypeLastCell).Column

dans
colonne = Sheets('a').Range('A1').SpecialCells(xlCellTypeLastCell).Column
ligne = Sheets('a').Range('A1').SpecialCells(xlCellTypeLastCell).Row

For Each cell In Sheets('a').Range(Cells(1, 1), Cells(ligne, colonne))
If cell.Interior.ColorIndex = 36 Then cell = cell.Value
Next cell

encore merci ct parfait
jm
 
Re

Soit tu protèges tes feuilles par macro en userinterfaceonly (voir les fils de thierry sur le sujet soit tu mets cette ligne en début de code avec le mot de passe s'il y en a un

Sheets('a').Unprotect password:='123'

puis en fin de code

Sheets('a').Protect password:='123'
 
Re

Voici ton fichier modifié

Cela te remplacera les formules par les valeurs des cellules en jaune si elles ne sont pas protégées. Si protection pas de remplacement [file name=colormacro_20050916081043.zip size=8076]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/colormacro_20050916081043.zip[/file]
 

Pièces jointes

super pascal merci pour cette solution ca marche sur le fichier colormacro.xls

mais je voudrais la lancer du fichier colormacro pour le fichier le faire sur un autre fichier et j'y arrive pas
je pense qu'il fo rajouter workbooks('autrefichier.xls') mais rien ne se passe.
saurais-tu une dernière me guider stp ?

merci et bravo
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
240
A
  • Question Question
Réponses
8
Affichages
950
Retour