vérifier si MEFC appliqué sur feuille

Le
ThierryK
Bonjour à toutes & à tous
et tous mes voux de santé, bonheur et prospérité pour cette nouvelle année

sur une feuille, j'ai de nombreuses Mise En Forme Conditionnelles (MEFC)
pour contrôler les erreurs:

exemple: MEFC pour les 2 cellules A1 & B1:
si A1<>B1 alors Format texte en gras et motif rouge

en théorie s'il n'y a pas d'erreur sur ma feuille, aucune MEFC ne devrait
s'appliquer.

mais comment vérifier qu'aucune MEFC n'est appliqué sur toute ma feuille?

en vous remerciant d'avance pour votre aide et vos conseils

ThierryK

Windows XP Pro SP3
Office 2003
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Corona
Le #20877561
Bonjour,
Edition/Atteindre (ou F5) cliquer sur Cellules.... et sélectionner
ensuite formats conditionnels
Philippe Tulliez

ThierryK a écrit :
Bonjour à toutes & à tous
et tous mes voux de santé, bonheur et prospérité pour cette nouvelle année

sur une feuille, j'ai de nombreuses Mise En Forme Conditionnelles (MEFC)
pour contrôler les erreurs:

exemple: MEFC pour les 2 cellules A1 & B1:
si A1<>B1 alors Format texte en gras et motif rouge

en théorie s'il n'y a pas d'erreur sur ma feuille, aucune MEFC ne
devrait s'appliquer.

mais comment vérifier qu'aucune MEFC n'est appliqué sur toute ma feuille?

en vous remerciant d'avance pour votre aide et vos conseils

ThierryK

Windows XP Pro SP3
Office 2003


Corona
Le #20877621
Désolé, j'ai mal lu la question. Ma réponse ne correspond pas à ce que
tu cherches.
Philippe

ThierryK a écrit :
Bonjour à toutes & à tous
et tous mes voux de santé, bonheur et prospérité pour cette nouvelle année

sur une feuille, j'ai de nombreuses Mise En Forme Conditionnelles (MEFC)
pour contrôler les erreurs:

exemple: MEFC pour les 2 cellules A1 & B1:
si A1<>B1 alors Format texte en gras et motif rouge

en théorie s'il n'y a pas d'erreur sur ma feuille, aucune MEFC ne
devrait s'appliquer.

mais comment vérifier qu'aucune MEFC n'est appliqué sur toute ma feuille?

en vous remerciant d'avance pour votre aide et vos conseils

ThierryK

Windows XP Pro SP3
Office 2003


ThierryK
Le #20877711
J'ai oublié de préciser que je souhaite vérifier en VBA

@+
cordialement

en vous remerciant d'avance pour votre aide et vos conseils

ThierryK

Windows XP Pro SP3
Office 2003 & 2007
michdenis
Le #20878061
Bonjour,

Dans ta question, tu ne définis pas ce que tu as défini
comme erreur dans tes mises en formes conditionnelles.

Ce qui suit devrait te donner le nombre d'erreurs contenues
dans la feuil1

Pour Excel, il y en a 6 types ...
#DIV/0! #N/A #NOM ? #NUL! #VALEUR!
#NOMBRE #REF!

Ce qui suit s'applique à toutes les erreurs sans
discrimination du type
'-----------------------------------
Sub test()
Dim A As Long, B As Long
Dim X As Range
On Error Resume Next
With worksheets("Feuil1").UsedRange
A = .SpecialCells(xlCellTypeFormulas, xlErrors).Cells.Count
B = .SpecialCells(xlCellTypeConstants, xlErrors).Cells.Count
End With
If A + B = 0 Then
MsgBox "Aucune erreur dans la plage"
Else
MsgBox A + B & " erreurs dénotées"
End If
End Sub
'-----------------------------------



"ThierryK" :
Bonjour à toutes & à tous
et tous mes voux de santé, bonheur et prospérité pour cette nouvelle année

sur une feuille, j'ai de nombreuses Mise En Forme Conditionnelles (MEFC)
pour contrôler les erreurs:

exemple: MEFC pour les 2 cellules A1 & B1:
si A1<>B1 alors Format texte en gras et motif rouge

en théorie s'il n'y a pas d'erreur sur ma feuille, aucune MEFC ne devrait
s'appliquer.

mais comment vérifier qu'aucune MEFC n'est appliqué sur toute ma feuille?

en vous remerciant d'avance pour votre aide et vos conseils

ThierryK

Windows XP Pro SP3
Office 2003
ThierryK
Le #20878891
Bonjour michdenis
et merci de t'intéresser à mon problème

en effet je n'ai pas été assez précis,

En A1 je fais la somme de x cellules "=somme("toutes les cellules
concernés")
en B1 je fais la somme de x AUTRES cellules "=somme("toutes les cellules
AUTRES concernés")

Et si tout est bon, A1 = B1

mais s'il y a une faute de frappe (nombre incorrect) dans les cellules
qui composent le total affiché en A1 ou B1, je le contrôle par la MEFC

en MEFC j'ai mis pour A1 & B1 ¡<>B1 (avec motif rouge)
donc si A1 est différent de B1 le motif est rouge
et si A1 = B1 le motif est celui du format de la cellule (gris)


cette feuille est ensuite envoyée par mail,
mais avant expédition, je souhaiterai m'assurer (par VBA) qu'il n'y a pas de
cellule avec le motif de la MEFC en rouge
et cela sur toute la feuille (environ 50 MEFC)

penses-tu que c'est possible?

@+
cordialement


en vous remerciant d'avance pour votre aide et vos conseils

ThierryK

Windows XP Pro SP3
Office 2003
michdenis
Le #20879161
Dans ta situation, à l'évidence, tu ne parles pas
des erreurs générées par Excel.

Pour tester si une mise en forme conditionnelle est en
application sur la plage de cellules, tu dois tester chacune
des cellules de la plages de cellules affectées de cette mise
en forme conditionnelle pour vérifier si la condition stipulée
est effectivement vérifiée.

Exemple de code :
'-------------------------------------
Sub Test()
Dim C As Range, X As Integer

With Worksheets("Feuil1")
'Définir la plage
For Each C In .Range("A1:A50")
'Définir la ou les conditions de la MEFC
If C.Value <> C.Offset(, 1) Then
X = X + 1
End If
Next
End With
If X <> 0 Then
MsgBox X & " erreurs trouvées"
Else
MsgBox "Aucune erreur"
End If
End Sub
'-------------------------------------



"ThierryK" :
Bonjour michdenis
et merci de t'intéresser à mon problème

en effet je n'ai pas été assez précis,

En A1 je fais la somme de x cellules "=somme("toutes les cellules
concernés")
en B1 je fais la somme de x AUTRES cellules "=somme("toutes les cellules
AUTRES concernés")

Et si tout est bon, A1 = B1

mais s'il y a une faute de frappe (nombre incorrect) dans les cellules
qui composent le total affiché en A1 ou B1, je le contrôle par la MEFC

en MEFC j'ai mis pour A1 & B1 ¡<>B1 (avec motif rouge)
donc si A1 est différent de B1 le motif est rouge
et si A1 = B1 le motif est celui du format de la cellule (gris)


cette feuille est ensuite envoyée par mail,
mais avant expédition, je souhaiterai m'assurer (par VBA) qu'il n'y a pas de
cellule avec le motif de la MEFC en rouge
et cela sur toute la feuille (environ 50 MEFC)

penses-tu que c'est possible?

@+
cordialement


en vous remerciant d'avance pour votre aide et vos conseils

ThierryK

Windows XP Pro SP3
Office 2003
ThierryK
Le #20879971
Michdenis
ok pour les cellules adjacentes
encore merci,

mais j'ai également d'autres cellules situés un peu partout sur ma feuille.

n'est il pas possible de définir plusieurs plages (non adjacentes)
et vérifier que la couleur de la MEFC (rouge) est appliquée dans chaque
cellule constituant les plages?


en vous remerciant d'avance pour votre aide et vos conseils

ThierryK



"michdenis" discussion :
Dans ta situation, à l'évidence, tu ne parles pas
des erreurs générées par Excel.

Pour tester si une mise en forme conditionnelle est en
application sur la plage de cellules, tu dois tester chacune
des cellules de la plages de cellules affectées de cette mise
en forme conditionnelle pour vérifier si la condition stipulée
est effectivement vérifiée.

Exemple de code :
'-------------------------------------
Sub Test()
Dim C As Range, X As Integer

With Worksheets("Feuil1")
'Définir la plage
For Each C In .Range("A1:A50")
'Définir la ou les conditions de la MEFC
If C.Value <> C.Offset(, 1) Then
X = X + 1
End If
Next
End With
If X <> 0 Then
MsgBox X & " erreurs trouvées"
Else
MsgBox "Aucune erreur"
End If
End Sub
'-------------------------------------



"ThierryK" groupe de discussion
:
Bonjour michdenis
et merci de t'intéresser à mon problème

en effet je n'ai pas été assez précis,

En A1 je fais la somme de x cellules "=somme("toutes les cellules
concernés")
en B1 je fais la somme de x AUTRES cellules "=somme("toutes les cellules
AUTRES concernés")

Et si tout est bon, A1 = B1

mais s'il y a une faute de frappe (nombre incorrect) dans les cellules
qui composent le total affiché en A1 ou B1, je le contrôle par la MEFC

en MEFC j'ai mis pour A1 & B1 ¡<>B1 (avec motif rouge)
donc si A1 est différent de B1 le motif est rouge
et si A1 = B1 le motif est celui du format de la cellule (gris)


cette feuille est ensuite envoyée par mail,
mais avant expédition, je souhaiterai m'assurer (par VBA) qu'il n'y a pas
de
cellule avec le motif de la MEFC en rouge
et cela sur toute la feuille (environ 50 MEFC)

penses-tu que c'est possible?

@+
cordialement


en vous remerciant d'avance pour votre aide et vos conseils

ThierryK

Windows XP Pro SP3
Office 2003


Caetera
Le #20880111
"ThierryK"

mais avant expédition, je souhaiterai m'assurer (par VBA) qu'il n'y a pas de
cellule avec le motif de la MEFC en rouge
et cela sur toute la feuille (environ 50 MEFC)



Pourquoi ne pas comparer la somme des 2 plages plutôt que de passer en revue
chacune des cellules pour avoir une alerte ?

If Application.Sum(Range("plage1")) <> Application.Sum(Range("plage2")) Then
..............

Etc
Corona
Le #20880181
Bonsoir Thierry,
Nomme une cellule « TestMFC » quelques parts dans le classeur, ensuite
fait tourner cette macro.
J'ai tenté un petit test qui fonctionne à moitié mais je cherche les
causes des problèmes rencontrés.

Test réalisé sur une feuille avec des formats conditionnels avec une
seule condition et la sélection 'La formule est »
J'ai mis comme condition par exemple A10<>B10 et A15>20 cela fonctionne
parfaitement.
J'ai des problèmes avec une condition telle que =NBCAR(« A2 »)>0. En
effet la cellule « TestMFC ») reçoit le nom de la fonction en minuscule
malgré le UCASE() placé et le fait que j'ai bien mis la fonction en
majuscule dans la MFC.

J'ai du aussi forcé l'activation de la cellule car dans le cas contraire
formulaconditions(1).formula1 ne renvoie pas la formule correspondant à
la ligne

C'est très cochon comme code mais c'est en test.
Peut-être d'autres contributeurs pourront trouver les failles.

J'ai essayé d'utiliser une plage nommée pour y placer la formule cela
aurait été plus beau mais cela se plante et je n'ai pas cherché plus loin.

Philippe
===== lE CODE == ?Sub mefCheck()
Dim formule As String
Dim msg As String
Dim maCellule As Range
For Each maCellule In
ActiveCell.SpecialCells(xlCellTypeAllFormatConditions)
With maCellule
If .FormatConditions.Count Then
maCellule.Activate
formule = UCase(.FormatConditions(1).Formula1)
Range("TestMFC").Formula = formule '
UCase(.FormatConditions(1).Formula1)
On Error Resume Next ' Problème actuel avec fonction tel que nbcar()
If Range("TestMFC") = True Then
msg = msg & .Address & " " & .FormatConditions(1).Formula1 & vbCrLf
' Debug.Print .Address & " - " & formule & " - " & Range("TestMFC")
End If
End If
End With
Next
MsgBox "Problème(s)" & vbCrLf & msg
End Sub

ThierryK a écrit :
Bonjour à toutes & à tous
et tous mes voux de santé, bonheur et prospérité pour cette nouvelle année

sur une feuille, j'ai de nombreuses Mise En Forme Conditionnelles (MEFC)
pour contrôler les erreurs:

exemple: MEFC pour les 2 cellules A1 & B1:
si A1<>B1 alors Format texte en gras et motif rouge

en théorie s'il n'y a pas d'erreur sur ma feuille, aucune MEFC ne
devrait s'appliquer.

mais comment vérifier qu'aucune MEFC n'est appliqué sur toute ma feuille?

en vous remerciant d'avance pour votre aide et vos conseils

ThierryK

Windows XP Pro SP3
Office 2003


ThierryK
Le #20880541
Bonjour Caetera
et merci pour ton aide

en réalité j'ai + de 50 MEFC
éparpillés sur toute ma feuille

avec des cellules de comparaisons différentes et non adjacentes
donc la comparaison entre 2 cellules n'est pas évidente en VBA

@+
cordialement

ThierryK



"Caetera" discussion :
"ThierryK" news:

mais avant expédition, je souhaiterai m'assurer (par VBA) qu'il n'y a pas
de cellule avec le motif de la MEFC en rouge
et cela sur toute la feuille (environ 50 MEFC)



Pourquoi ne pas comparer la somme des 2 plages plutôt que de passer en
revue chacune des cellules pour avoir une alerte ?

If Application.Sum(Range("plage1")) <> Application.Sum(Range("plage2"))
Then
..............

Etc





--
Bonjour à toutes & à tous



en vous remerciant d'avance pour votre aide et vos conseils

ThierryK

Windows XP Pro SP3
Office 2003 & 2007
Publicité
Poster une réponse
Anonyme