Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Meme Macro qui differe selon une seule cellule

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

B

Benjo

Guest
salut à tous,
je suis nouveau sur ce forum, et pour cause, cela fait un petit moment que je cherche une solution à mon probleme

En fait, j'ai une macro qui me dit de changer la couleur de la cellule selon que son contenue est inferieur à une valeur plancher (valeur définie dans la colonne "valeur planchée".
Le probleme c'est que je ne sais pas comment faire pour ne pas ecrire à chaque fois la macro avec à chaque fois une nouvelle valeur (j'ai plus de 300 ligne!)

L'idée c'est de faire un truc du style :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If [COLOR="red"]"Cellule de la ligne 1 de la colonne qui m'interesse"[/COLOR].Value < [COLOR="Red"]"valeur planchée de la meme ligne"[/COLOR] Then
With [COLOR="Red"]"Cellule qui m'interesse"[/COLOR].Interior
        .ColorIndex = 3
        .Pattern = xlSolid
    End With
Else
With [COLOR="red"]"Cellule qui m'interesse"[/COLOR].Interior
        .ColorIndex = xlNone
    
    End With
End If
End Sub

Je ne sais pas faire varier ce que j'ai mis en rouge de facon à ecrire une seule macro pour toutes les ligne de ma feuille ...

Pouvez vous m'aider ?

Merci beaucou 🙂
 
Re : Meme Macro qui differe selon une seule cellule

Si on magouille un peu !!


Code:
Private Sub Worksheet_Deactivate()
'pour pas voir ce que fais excel
Application.ScreenUpdating = False

vide = true

For i = 8 To 300
     If Cells(i, 19).Value < Cells(i, 20) Then
           all = all & " " & vbCrLf & Cells(i, 2)
           vide=false
     End If
Next i

if vide = false then
     MsgBox ("Pensez à combler le stock des produits suivants: " & all)
endif

'pour pas voir ce que fais excel
Application.ScreenUpdating = true
End Sub

Have Fun
 
Dernière édition:
Re : Meme Macro qui differe selon une seule cellule

Bonsoir,

Une solution trouvée pour la première partie sans boucle (couleur si)
Donc, en plus, apparition d'un message.
Ce serait plus facile avec un bout de ton fichier.
 

Pièces jointes

Re : Meme Macro qui differe selon une seule cellule


Ca fonctionne parfaitement.
Je commence à comprendre la logique VBA 😀


Bonsoir,

Une solution trouvée pour la première partie sans boucle (couleur si)
Donc, en plus, apparition d'un message.
Ce serait plus facile avec un bout de ton fichier

Pourrais tu m'expliquer ce code stp ? :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Count > 1 Or Target.Row < 8 Or Target.Column <> 19 Then Exit Sub
 Target.Interior.ColorIndex = IIf(Target.Value < Cells(Target.Row, 20), 3, xlNone)
End Sub
 
Re : Meme Macro qui differe selon une seule cellule

Bonjour,

Benjo (qui semble vouloir se lancer dans le VBA), je te propose cela à titre d’exemple.
Ce sont des bases indispensables :

Target.Count > 1 permet de sélectionner plusieurs cellules sans message d’erreur.
Target..Row < 8 permet d’éviter les 8 premières lignes.
Targe.Column <> 19 pour n’agir que sur la colonne 19 (colonne S).

Si l’une de ces 3 conditions est vérifiée, on peut changer le(s) contenu(s) sans lancer la suite de la procédure.

Très peu utilisé mais utile pour qui a compris son fonctionnement :
Target.Interior.ColorIndex = IIf(Target.Value < Cells(Target.Row, 20), 3, xlNone)
Si le contenu de la cellule cliquée est inférieur au contenu de la cellule sur la même ligne mais en colonne 20 (c’est-à-dire T) alors son fond est rouge (3) sinon il n’y a pas de couleur de fond (xlNone).
C’est une fonction qui remplace If …. Then …. Else ….
 
Re : Meme Macro qui differe selon une seule cellule

bonjour Benjo,

une solution est d'initialiser "all" :
"all = vbNullString"


et ensuite, au niveau du MsgBox :
"if all <> vbNullString Then MsgBox(......"

a+
 
Re : Meme Macro qui differe selon une seule cellule

Ha yes
pas mal
Merci beaucoup pour ces explications 😉

J'aime bien ce forum, je sens que je vais y resté un bon ptit moment 😀
 
- 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
14
Affichages
484
  • Question Question
XL 2021 Macro
Réponses
6
Affichages
315
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…