Excel-VBA - Macro s’exécutant sans mise en forme conditionnelle

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 !

excelfresh

XLDnaute Nouveau
Bonjour!
J’ai un problème avec une macro qui s’exécute sans application de la mise en forme conditionnelle.
Pouvez-vous m’aider à adapter la formule suivante dans mon code ?
"=NON(MOD(SOMME(N($B$2:$B2<>$B$3:$B3));2))"
La macro l’inscrit bien dans la formule de MFC. Mais rien ne se passe.
Lorsqu’on exécute la macro, enregistre le fichier et le ferme. À la réouverture du fichier, La MFC s’applique bien.
J’aimerai qu’elle s’applique directement après la validation du bouton <<Nvlle Ligne>>.
Aidez-moi, je vous en prie.
 

Pièces jointes

Bonjour!
J’ai un problème avec une macro qui s’exécute sans application de la mise en forme conditionnelle.
Pouvez-vous m’aider à adapter la formule suivante dans mon code ?
"=NON(MOD(SOMME(N($B$2:$B2<>$B$3:$B3));2))"
La macro l’inscrit bien dans la formule de MFC. Mais rien ne se passe.
Lorsqu’on exécute la macro, enregistre le fichier et le ferme. À la réouverture du fichier, La MFC s’applique bien.
J’aimerai qu’elle s’applique directement après la validation du bouton <<Nvlle Ligne>>.
Aidez-moi, je vous en prie.
Voici le fichier joint!
MERCI!
 

Pièces jointes

Bonjour,
As-tu essayé de coller ta formule dans des cellules pour voir le résultat !?
Essaye et tu comprendras
A+
La formule donne FAUX. Là n'est pas le problème. J'ai certainement mal adapter la formule "=NON(MOD(SOMME(N($B$2:$B2<>$B$3:$B3));2))" dans ma macro.
Je tiens à rappeller que je débute en VBA. Et je vous prie de m'aider.
Merci
 

Pièces jointes

Voici le code de ma macro

Sub new_line()
Dim DL As Integer
DL = Sheets("Tabelle1").Cells(Application.Rows.Count, 2).End(xlUp).Row + 1
Rows("3:3").Select
Selection.Insert Shift:=xlDown
Selection.ClearFormats
Sheets("Tabelle1").Range("B3:F" & DL).Select
Cells.FormatConditions.Delete
Sheets("Tabelle1").Range("B3:F" & DL).Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NON(MOD(SOMME(N($B$2:$B2<>$B$3:$B3));2))"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = 0
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Range("B3").Select
End Sub
 
Salut

La formule donne FAUX. Là n'est pas le problème
Si justement là est le problème, si le retour est FAUX la MFC n'est pas appliquée

J'ai certainement mal adapter la formule "=NON(MOD(SOMME(N($B$2:$B2<>$B$3:$B3));2))" dans ma macro.
Oui mais tu ne nous dis pas ce que tu veux faire exactement avec cette formule !?

Je tiens à rappeller que je débute en VBA. Et je vous prie de m'aider.
Pour bien être aidé, il faut bien formuler sa problématique, or ce n'est pas le cas pour ton post

A+
 
Salut


Si justement là est le problème, si le retour est FAUX la MFC n'est pas appliquée


Oui mais tu ne nous dis pas ce que tu veux faire exactement avec cette formule !?


Pour bien être aidé, il faut bien formuler sa problématique, or ce n'est pas le cas pour ton post

A+
Je veux faire une macro qui crée une MFC avec la formule "=NON(MOD(SOMME(N($B$2:$B2<>$B$3:$B3));2))"
 
Re

Je n'ai jamais écrit que c'était la solution
Mais l'usage veut qu'on Dim DerLigne ou DL as Long

Pour revenir à ta macro
J'ai fait ces autres petits changements
(car là aussi la coutume veut qu'on évite les Select, Selection et autre Activate)
VB:
Sub new_line2()
Dim DL As Long
DL = Sheets("Tabelle1").Cells(Application.Rows.Count, 2).End(xlUp).Row + 1
Rows("3:3").Insert Shift:=xlDown: Rows("3:3").ClearFormats
With Sheets("Tabelle1").Range("B3:F" & DL)
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=NON(MOD(SOMME(N($B3:$B3<>$B4:$B4));2))"
.FormatConditions(.FormatConditions.Count).SetFirstPriority
.FormatConditions(1).Interior.ThemeColor = xlThemeColorAccent2
.FormatConditions(1).Interior.TintAndShade = 0.799981688894314
.FormatConditions(1).StopIfTrue = False
End With
End Sub
 
Re

Je n'ai jamais écrit que c'était la solution
Mais l'usage veut qu'on Dim DerLigne ou DL as Long

Pour revenir à ta macro
J'ai fait ces autres petits changements
(car là aussi la coutume veut qu'on évite les Select, Selection et autre Activate)
VB:
Sub new_line2()
Dim DL As Long
DL = Sheets("Tabelle1").Cells(Application.Rows.Count, 2).End(xlUp).Row + 1
Rows("3:3").Insert Shift:=xlDown: Rows("3:3").ClearFormats
With Sheets("Tabelle1").Range("B3:F" & DL)
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:="=NON(MOD(SOMME(N($B3:$B3<>$B4:$B4));2))"
.FormatConditions(.FormatConditions.Count).SetFirstPriority
.FormatConditions(1).Interior.ThemeColor = xlThemeColorAccent2
.FormatConditions(1).Interior.TintAndShade = 0.799981688894314
.FormatConditions(1).StopIfTrue = False
End With
End Sub
Il faut adapter dans la macro la formule "=NON(MOD(SOMME(N($B$2:$B2<>$B$3:$B3));2))" et non "=NON(MOD(SOMME(N($B3:$B3<>$B4:$B4));2))"
A+
 
- 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

Discussions similaires

Réponses
2
Affichages
515
Retour