Couleur sur une feuiile inactive
Le
Alf

Bonjour à tous,
Ma macro effectue un traitement sur la feuil1 et en même temps éc=
rit des données sur la feui2.
La feuil1 est active.
Comment colorier des cellules de la feuil2 sans l'activer ?
Merci pour votre aide
Alf
Ma macro effectue un traitement sur la feuil1 et en même temps éc=
rit des données sur la feui2.
La feuil1 est active.
Comment colorier des cellules de la feuil2 sans l'activer ?
Merci pour votre aide
Alf
Bonjour,
Cela ressemble à ceci :
'-------------------------------------
Sub test()
With Worksheets("Feuil2")
.Range("A1:K1").Interior.Color = vbRed
'Ou
.Range("A2:G5").Interior.Color = RGB(125, 125, 254)
'Chaque paramètre de la fonction RGB peut prendre la valeur
'de 0 à 255
'OU
.Range("A3").Interior.ColorIndex = 56
'Valeur de 0 à 56
'Pour colorer le texte
With .Range("A1")
.Font.Color = vbWhite
.Bold = True
End With
'Les 2 autres méthodes sont aussi possibles.
End With
End Sub
'-------------------------------------
MichD
Les "Range" que j'ai donnés sont des exemples. Tu peux définir ces
"Range" comme tu le désires.
Si ta ligne de code ne fonctionne pas, c'est que la syntaxe n'est pas
bonne. Voici ce que tu aurais dû écrire (tout sur la même ligne)
Worksheets("Feuil2").Range(Worksheets("Feuil2").Cells(Nlig, 1),
Worksheets("Feuil2").Cells(Nlig, 16)).Interior.Color = vbRed
Si cette ligne de code est dans un module feuille, tous les objets
"Cells" ou "Range" doivent être précédés par l'identification de la
feuille que tu désires. Si une telle identification n'est pas spécifiée,
ces objets "Range" ou "Cells" sont réputés appartenir à la feuille où le
code est inscrit.
Quand tu es dans un module standard, les objets "Cells" et "range" sans
identification de la feuille auxquels ils appartiennent, ils sont
réputés à la feuille active au moment de l'exécution de la ligne de code.
Si tu apprends à programmer en utilisant le type de syntaxe que
j'utilise, elle fonctionne à tout coup, peu importe où tu as écrit la
ligne de code. Cela est plus court à écrire et plus facile à lire!
MichD
With Worksheets("Feuil2")
with .Range(.Cells(Nlig, 1),.Cells(Nlig, 16)
.Interior.Color = vbRed
end with
End with
Observe les "." devant les expressions "Range" et "cells" afin de
spécifier qu'ils appartiennent vraiment à la feuille "Feuil2".
MichD
Ok tout est clair.
Merci encore