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

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

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

  • mise en forme auto.xlsm
    21.7 KB · Affichages: 87

excelfresh

XLDnaute Nouveau
Voici le fichier joint!
MERCI!
 

Pièces jointes

  • mise en forme auto.xlsm
    21.6 KB · Affichages: 24

excelfresh

XLDnaute Nouveau
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

  • mise en forme auto.xlsm
    21.5 KB · Affichages: 27

excelfresh

XLDnaute Nouveau
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
 
C

Compte Supprimé 979

Guest
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+
 

excelfresh

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

Staple1600

XLDnaute Barbatruc
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
 

excelfresh

XLDnaute Nouveau
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+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…