OVH Cloud OVH Cloud

Mettre une couleur si > 0, en VBA

6 réponses
Avatar
maryola
Bonjour à toutes et à tous,
j'ai un grand tableau dans lequel j'ai plusieurs colonnes. Dans mes cellules
j'ai une formule toute bête : =NB.SI(C13:P13;"P") P étant mon intitulé de
colonne.
Je voudrais appliquer une couleur lorsque ma celulle est > 0 et faire cela
en vba. Mais là je suis totalement nulle en vba.
Quelqu'un pourrait-il m'aider ?
En vous remerciant tous.
Bon app"
Mary

6 réponses

Avatar
Stéphane L.
Bonjour Mary;

Pas besoin de VBA, tu peux utiliser la mise en forme conditionnelle.

Si il te faut tout de même VBA, fait 1 macro automatique pour enregistrer 1
mise en forme conditionnelle. Tu n'as plus qu'à l'adapter pour l'intégrer
dans ton code.

Stéphane.


"maryola" a écrit dans le message de
news:
Bonjour à toutes et à tous,
j'ai un grand tableau dans lequel j'ai plusieurs colonnes. Dans mes
cellules
j'ai une formule toute bête : =NB.SI(C13:P13;"P") P étant mon intitulé de
colonne.
Je voudrais appliquer une couleur lorsque ma celulle est > 0 et faire cela
en vba. Mais là je suis totalement nulle en vba.
Quelqu'un pourrait-il m'aider ?
En vous remerciant tous.
Bon app"
Mary


Avatar
Daniel
Bonjour.
Le code s'applique à la colonne A. Modifie la ligne set Plage... selon tes
besoins.

Sub test()
Dim Plage As Range, c As Range
Set Plage = Range("A:A") 'Définit la plage à traiter
For Each c In Plage
If c.Value > 0 Then c.Interior.ColorIndex = 3
Next c
End Sub

Cordialement.
Daniel
"maryola" a écrit dans le message de
news:
Bonjour à toutes et à tous,
j'ai un grand tableau dans lequel j'ai plusieurs colonnes. Dans mes
cellules
j'ai une formule toute bête : =NB.SI(C13:P13;"P") P étant mon intitulé de
colonne.
Je voudrais appliquer une couleur lorsque ma celulle est > 0 et faire cela
en vba. Mais là je suis totalement nulle en vba.
Quelqu'un pourrait-il m'aider ?
En vous remerciant tous.
Bon app"
Mary


Avatar
maryola
Merci pour le code.
Je dois le place où ? (quand je vous dis que je suis nulle...)


Bonjour.
Le code s'applique à la colonne A. Modifie la ligne set Plage... selon tes
besoins.

Sub test()
Dim Plage As Range, c As Range
Set Plage = Range("A:A") 'Définit la plage à traiter
For Each c In Plage
If c.Value > 0 Then c.Interior.ColorIndex = 3
Next c
End Sub

Cordialement.
Daniel
"maryola" a écrit dans le message de
news:
Bonjour à toutes et à tous,
j'ai un grand tableau dans lequel j'ai plusieurs colonnes. Dans mes
cellules
j'ai une formule toute bête : =NB.SI(C13:P13;"P") P étant mon intitulé de
colonne.
Je voudrais appliquer une couleur lorsque ma celulle est > 0 et faire cela
en vba. Mais là je suis totalement nulle en vba.
Quelqu'un pourrait-il m'aider ?
En vous remerciant tous.
Bon app"
Mary







Avatar
maryola
Ca y est, ça marche, j'ai trouvé où le mettre. Une dernière précision : j'ai
plusieurs colonnes, donc j'ai copié plusieurs fois le code. Ca marche très
bien, mais n'y aurait il pas qq chose de plus "condensé" :

'Couleur totaux p
Set Plage = Range("total_p")
For Each d In Plage
If d.Value > 0 Then d.Interior.ColorIndex = 36
Next d

'Couleur totaux ca
Set Plage = Range("total_ca")
For Each d In Plage
If d.Value > 0 Then d.Interior.ColorIndex = 24
Next d

'Couleur totaux mi
Set Plage = Range("total_mi")
For Each d In Plage
If d.Value > 0 Then d.Interior.ColorIndex = 4
Next d

'Couleur totaux f
Set Plage = Range("total_f")
For Each d In Plage
If d.Value > 0 Then d.Interior.ColorIndex = 43
Next d

'Couleur totaux cp
Set Plage = Range("total_cp")
For Each d In Plage
If d.Value > 0 Then d.Interior.ColorIndex = 33
Next d

'Couleur totaux aa
Set Plage = Range("total_aa")
For Each d In Plage
If d.Value > 0 Then d.Interior.ColorIndex = 15
Next d





Bonjour.
Le code s'applique à la colonne A. Modifie la ligne set Plage... selon tes
besoins.

Sub test()
Dim Plage As Range, c As Range
Set Plage = Range("A:A") 'Définit la plage à traiter
For Each c In Plage
If c.Value > 0 Then c.Interior.ColorIndex = 3
Next c
End Sub

Cordialement.
Daniel
"maryola" a écrit dans le message de
news:
Bonjour à toutes et à tous,
j'ai un grand tableau dans lequel j'ai plusieurs colonnes. Dans mes
cellules
j'ai une formule toute bête : =NB.SI(C13:P13;"P") P étant mon intitulé de
colonne.
Je voudrais appliquer une couleur lorsque ma celulle est > 0 et faire cela
en vba. Mais là je suis totalement nulle en vba.
Quelqu'un pourrait-il m'aider ?
En vous remerciant tous.
Bon app"
Mary







Avatar
Daniel
Il faut un début à tout.
A partir de ta feuille, clique sur "Outils / Macro / Nouvelle macro. La
fenêtre "Enregistrer une macro" apparaît. Clique sur "OK". Clique sur le
bouton représentant un carré pour terminer la macro (tu as enregistré une
macro vide.
Clique sur Outils / Macro / Macros.
Une fenêtre apparaît avec la liste des macros disponibles. Celle que tu
viens d'enregistrer doit s'appeler "Macro1". Clique dessus eet clique sur
modifier.
Copie les lignes suivantes avant la ligne "End Sub".
tu disposes d'une macro appelée "Macro1" (tu peux changer le nom).
Une autre manière de procéder est la suivante :
Clique sur Outils / Macro / Macros / Visual Basic editor
Tu obtiens la même fenêtre que précédemment, mais sans macro. Repère le nom
de ton classeur dans la partie gauche (ie. VBAProject(classeur1)). Clique
dessus, puis, Insertion / Module. Copie alors, dans la partie droite la
macro :

Sub test()
Dim Plage As Range, c As Range
Set Plage = Range("A:A") 'Définit la plage à traiter
For Each c In Plage
If c.Value > 0 Then c.Interior.ColorIndex = 3
Next c
End Sub

A ta disposition si tu as des problèmes.
Daniel
"maryola" a écrit dans le message de
news:
Merci pour le code.
Je dois le place où ? (quand je vous dis que je suis nulle...)


Bonjour.
Le code s'applique à la colonne A. Modifie la ligne set Plage... selon
tes
besoins.

Sub test()
Dim Plage As Range, c As Range
Set Plage = Range("A:A") 'Définit la plage à traiter
For Each c In Plage
If c.Value > 0 Then c.Interior.ColorIndex = 3
Next c
End Sub

Cordialement.
Daniel
"maryola" a écrit dans le message de
news:
Bonjour à toutes et à tous,
j'ai un grand tableau dans lequel j'ai plusieurs colonnes. Dans mes
cellules
j'ai une formule toute bête : =NB.SI(C13:P13;"P") P étant mon intitulé
de
colonne.
Je voudrais appliquer une couleur lorsque ma celulle est > 0 et faire
cela
en vba. Mais là je suis totalement nulle en vba.
Quelqu'un pourrait-il m'aider ?
En vous remerciant tous.
Bon app"
Mary









Avatar
Daniel
Tu peux écrire comme cela, c'est plus condensé, mais l'exécution n'est pas
plus rapide :

Sub test()
Dim Plages, Couleurs, c As Range
Plages = Array("total_p", "total_ca", "total_mi", "total_f", "total_cp",
"total_aa")
Couleurs = Array(36, 24, 4, 43, 33, 15)
For i = 0 To UBound(Plages)
For Each c In Range(Plages(i))
If c.Value > 0 Then c.Interior.ColorIndex = Couleurs(i)
Next
Next i
End Sub

Cordialement.
Daniel
"maryola" a écrit dans le message de
news:
Ca y est, ça marche, j'ai trouvé où le mettre. Une dernière précision :
j'ai
plusieurs colonnes, donc j'ai copié plusieurs fois le code. Ca marche très
bien, mais n'y aurait il pas qq chose de plus "condensé" :

'Couleur totaux p
Set Plage = Range("total_p")
For Each d In Plage
If d.Value > 0 Then d.Interior.ColorIndex = 36
Next d

'Couleur totaux ca
Set Plage = Range("total_ca")
For Each d In Plage
If d.Value > 0 Then d.Interior.ColorIndex = 24
Next d

'Couleur totaux mi
Set Plage = Range("total_mi")
For Each d In Plage
If d.Value > 0 Then d.Interior.ColorIndex = 4
Next d

'Couleur totaux f
Set Plage = Range("total_f")
For Each d In Plage
If d.Value > 0 Then d.Interior.ColorIndex = 43
Next d

'Couleur totaux cp
Set Plage = Range("total_cp")
For Each d In Plage
If d.Value > 0 Then d.Interior.ColorIndex = 33
Next d

'Couleur totaux aa
Set Plage = Range("total_aa")
For Each d In Plage
If d.Value > 0 Then d.Interior.ColorIndex = 15
Next d





Bonjour.
Le code s'applique à la colonne A. Modifie la ligne set Plage... selon
tes
besoins.

Sub test()
Dim Plage As Range, c As Range
Set Plage = Range("A:A") 'Définit la plage à traiter
For Each c In Plage
If c.Value > 0 Then c.Interior.ColorIndex = 3
Next c
End Sub

Cordialement.
Daniel
"maryola" a écrit dans le message de
news:
Bonjour à toutes et à tous,
j'ai un grand tableau dans lequel j'ai plusieurs colonnes. Dans mes
cellules
j'ai une formule toute bête : =NB.SI(C13:P13;"P") P étant mon intitulé
de
colonne.
Je voudrais appliquer une couleur lorsque ma celulle est > 0 et faire
cela
en vba. Mais là je suis totalement nulle en vba.
Quelqu'un pourrait-il m'aider ?
En vous remerciant tous.
Bon app"
Mary