MFC en VBA

Fermé
galerienbis Messages postés 2 Date d'inscription lundi 14 septembre 2015 Statut Membre Dernière intervention 16 septembre 2015 - Modifié par galerienbis le 15/09/2015 à 12:05
galerienbis Messages postés 2 Date d'inscription lundi 14 septembre 2015 Statut Membre Dernière intervention 16 septembre 2015 - 16 sept. 2015 à 10:33
Bonjour*

J'ai actuellement sous forme de MFC la formule (imcomplete en partie car je voudrai rajouter comme critère que la colonne AD (30) doit être vide):
=ET(OU(LC31="ROUTINE GATEWAY";LC31="CRITICAL");SOMMEPROD((L3C15:L27C15=LC15)*(L3C18:L27C18=L(-1)C18)*(L3C31:L27C31="ROUTINE GATEWAY")*L3C33:L27C33)>SOMMEPROD((L3C15:L27C15=LC15)*(L3C18:L27C18=LC18)*(L3C31:L27C31="CRITICAL")*L3C33:L27C33))
cette formule marche mais quand je l'a traduit en VBA rien ne se passe ou cela m'affiche un message d'erreur

Range("AG" & i).Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=AND(OR(R5C[-2]=""ROUTINE GATEWAY"";R5C[-2]=""CRITICAL"");SUMPRODUCT((R5C[-18]:RiC[-18]=R5C[-18])*(R5C[-15]:RiC[-15]=R5C[-15])*(R5C[-2]:RiC[-2]=""ROUTINE GATEWAY"")*R5:Ri)>SOMMEPROD((R5C[-18]:RiC[-18]=R5C[-18])*(R5C[-15]:RiC[-15]=R5C[-15])*(R5C[-2]:RiC[-15]=""CRITICAL"")*R5:Ri))"
où i correspond à la dernière ligne non vide
en vous remerciant de me dire ce qui cloche
Cordialement

2 réponses

PlacageGranby Messages postés 393 Date d'inscription mercredi 26 mars 2014 Statut Membre Dernière intervention 7 mars 2019 26
Modifié par PlacageGranby le 15/09/2015 à 21:24
Bonjour,

Ta variable "i" est entre parenthèse donc elle sera considéré comme du texte et non pas comme le contenu de ta variable.

Pour inclure une variable dans une chaine de texte, il faut utiliser l'opérateur de concaténation "&" comme "blah blah" & i & "blah blah"

Donc vous pouvez essayer ceci
Formula1:="=AND(OR(R5C[-2]=""ROUTINE GATEWAY"";R5C[-2]=""CRITICAL"");SUMPRODUCT((R5C[-18]:R" & i & "C[-18]=R5C[-18])*(R5C[-15]:R" & i & "C[-15]=R5C[-15])*(R5C[-2]:R" & i & "C[-2]=""ROUTINE GATEWAY"")*R5:R" & i & ")>SOMMEPROD((R5C[-18]:R" & i & "C[-18]=R5C[-18])*(R5C[-15]:R" & i & "C[-15]=R5C[-15])*(R5C[-2]:R" & i & "C[-15]=""CRITICAL"")*R5:R" & i & "))"


J'ai peut-être oublié un I dans ton code, fait une double vérification
0
galerienbis Messages postés 2 Date d'inscription lundi 14 septembre 2015 Statut Membre Dernière intervention 16 septembre 2015
Modifié par galerienbis le 16/09/2015 à 10:52
Oui j'ai réussi au finale en donnant bien le nom des colonnes je vais essayer la methode R1C1 mais je pense qu'on a la même chose, cependant je n'ai qu'un case concerné par le rapport > qui se colore et pas l'autre, j'aurai aimé savoir comment faire en sorte que les 2 cases se colorie, je vous remercie dans tous les cas :)
Sub mfccomplexe()
Dim i As Integer, nb As Integer
nb = Application.WorksheetFunction.CountA(ActiveWorkbook.Sheets("Rate Sheet").Columns("A")) - 5
If nb = -1 Or nb = 0 Then
nb = nb + 2
End If

For i = 5 To nb + 5
Range("AG" & i).Select
Selection.FormatConditions.Add Type:=xlExpression, _
Formula1:="=ET(OU($AE$" & i & "=""ROUTINE GATEWAY"";$AE$" & i & "=""CRITICAL"";$AE$" & i & "=""AOG"");SOMMEPROD(($O$" & i & ":$O$" & nb & "=$O" & i & ")*($R$" & i & ":$R$" & nb & "=$R" & i & ")*($AE$" & i & ":$AE$" & nb & "=""ROUTINE GATEWAY"")*$AG$" & i & ":$AG$" & nb & ")>SOMMEPROD(($O$" & i & ":$O$" & nb & "=$O" & i & ")*($R$" & i & ":$R$" & nb & "=$R" & i & ")*($AE$" & i & ":$AE$" & nb & "=""CRITICAL"")*$AG$" & i & ":$AG$" & nb & ")>SOMMEPROD(($O$" & i & ":$O$" & nb & "=$O" & i & ")*($R$" & i & ":$R$" & nb & "=$R" & i & ")*($AE$" & i & ":$AE$" & nb & "=""AOG"")*$AG$" & i & ":$AG$" & nb & "))"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.color = 3
.TintAndShade = 0
End With
Next i
End sub

Par contre j'aurai voulu rajouté une condition et un rapport tel que dans le OU on est un ; et la même chose mais = AOG et dans les rapprot un > apres celui du CRITICAL pour la même chose mais AOG à la place mais quand je le fait dans ma macro il me colorie alors en noir toutes les cases ayant pour une autre colonne de la même ligne AOG/CRITICAL/GATEWAY comment faire ?
0