OVH Cloud OVH Cloud

liste des formats condi

15 réponses
Avatar
Patrick
Bonjour,

je suis sous XL2007 et j'ai pêché ce code sur un site mais il ne semble
pas fonctionner chez moi...
Si parmi vous il y a des gens sous 2010-13-16, pourrait-il (elle) le
tester et dire si c'est ok ou pas ?

Merci

Option Explicit
Sub List_Conditional_Formatting_Rules()
Dim ws As Worksheet, wsCF As Worksheet, NR As Long
Dim CFrule As FormatCondition, Rng As Range
On Error Resume Next
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "CF Rules"
Set wsCF = Sheets("CF Rules")
wsCF.Range("A1:C1").Value = [{"Sheet","Formula","Range"}]
NR = 2
For Each ws In Worksheets
If ws.Name <> "CF Rules" Then
Set Rng = ws.Cells
For Each CFrule In Rng.FormatConditions
wsCF.Range("A" & NR).Value = ws.Name
wsCF.Range("B" & NR).Value = "'" & CFrule.Formula1
wsCF.Range("C" & NR).Value = CFrule.AppliesTo.Address
NR = NR + 1
Next CFrule
End If
Next ws
wsCF.Columns.AutoFit
End Sub

5 réponses

1 2
Avatar
Patrick
C fait...
wsCF.Range("B" & NR).Value = "'" & CFrule.Formula1
est la ligne qui pose problème; ce sont des instructions inconnues en
version 2007
Merci pour le lien, je vais voir ça
Patrick
Le 13-07-16 à 11:41, MichD a écrit :
| Il y a donc des instructions inconnues de la
| version 2007, c'est ce que je voulais savoir
| et c'est confirmé ici.
Si tu enlèves la ligne de code dans la macro,
"On Error Resume Next"
Tu vas pouvoir identifier la commande qui pose
problème.
MichD
Avatar
MichD
Excel 2007 n'est pas installé chez moi. Je ne peux pas procéder à aucun
test. Lorsque la macro s'arrête sur cette ligne de code
wsCF.Range("B" & NR).Value = "'" & CFrule.Formula1
Quelle est la formule associée à cette mise en forme conditionnelle.
La procédure de Dick Kusleika ne fonctionne pas?
L'aide que je peux t'apporter sur cette question est très limitée.
MichD
Avatar
Patrick
Laissons tomber , Denis...
ça ne fonctionne pas en XL 2007, pas de soucis mais ton lien ne
fonctionne pas , le site a un problème en ce moment je suppose.
Bcp de sites de MVP ou de "boss" en excel ont des codes ou des exemples
basés sur la dernières versions, pas un vieux brol de 2007 :)
Merci à toi et aux autres
P.
Le 13-07-16 à 13:59, MichD a écrit :
Excel 2007 n'est pas installé chez moi. Je ne peux pas procéder à aucun
test. Lorsque la macro s'arrête sur cette ligne de code
wsCF.Range("B" & NR).Value = "'" & CFrule.Formula1
Quelle est la formule associée à cette mise en forme conditionnelle.
La procédure de Dick Kusleika ne fonctionne pas?
L'aide que je peux t'apporter sur cette question est très limitée.
MichD
Avatar
isabelle
bonjour Patrick,
sur le site silkyroad.developpez
il y a un tuto qui a été publier en 2007:
http://silkyroad.developpez.com/Excel/MiseEnFormeConditionnelle/#LI
voici la macro
peut tu faire un test ?
Sub Test()
'Récupère les conditions de la cellule D2
ExtraitConditions Range("A1")
End Sub
Sub ExtraitConditions(Cell As Range)
Dim Fc As FormatCondition
Dim Resultat As String
'Vérifie si la cellule contient une mise en forme conditionnelle
If Cell.FormatConditions.Count > 0 Then
'Boucle sur les MFC de la cellule
For Each Fc In Cell.FormatConditions
'Si la MFC est de type "La valeur de la cellule est"
If Fc.Type = xlCellValue Then
Select Case Fc.Operator
Case xlBetween
Resultat = "Compris entre " & Fc.Formula1 & " et " &
Fc.Formula2
Case xlNotBetween
Resultat = "Non compris entre " & Fc.Formula1 & " et " &
Fc.Formula2
Case xlEqual
Resultat = "Egal à " & Fc.Formula1
Case xlNotEqual
Resultat = "Différent de " & Fc.Formula1
Case xlGreater
Resultat = "Supérieur à " & Fc.Formula1
Case xlLess
Resultat = "Inférieur à " & Fc.Formula1
Case xlGreaterEqual
Resultat = "Supérieur ou égal à " & Fc.Formula1
Case xlLessEqual
Resultat = "Inférieur ou égal à " & Fc.Formula1
End Select
Else
'Si la MFC est de type "La formule est"
Resultat = "La formule est " & Fc.Formula1
End If
MsgBox Resultat
Next Fc
End If
End Sub
isabelle
Avatar
Patrick
Bonjour Isabelle,
si A1 a un format condi: ¡>10
ça fonctionne, par contre si on prends le format des "double", alors ça
ne fonctionne pas
Donc 'Si la MFC est de type "La valeur de la cellule est"
est OK , pas le reste.
Mais je ne me bute pas là dessus, je voulais simplement savoir si le
code de départ fonctionnait sur les autres versions plus récentes que la
mienne (2007)
Je me souviens avoir lu dans le temps une demande dans ce sens mais
c'était impossible , forcément, en version 2003 que j'ai quitté il n"y a
que 2 ans je pense...
Je crois que j'achèterai un jour la nouvelle version si elle se vend
toujours seule et autonome :)
Merci
P.
Le 13-07-16 à 14:16, isabelle a écrit :
Sub Test()
'Récupère les conditions de la cellule D2
ExtraitConditions Range("A1")
End Sub
Sub ExtraitConditions(Cell As Range)
Dim Fc As FormatCondition
Dim Resultat As String
'Vérifie si la cellule contient une mise en forme conditionnelle
If Cell.FormatConditions.Count > 0 Then
'Boucle sur les MFC de la cellule
For Each Fc In Cell.FormatConditions
'Si la MFC est de type "La valeur de la cellule est"
If Fc.Type = xlCellValue Then
Select Case Fc.Operator
Case xlBetween
Resultat = "Compris entre " & Fc.Formula1 & " et "
& Fc.Formula2
Case xlNotBetween
Resultat = "Non compris entre " & Fc.Formula1 & "
et " & Fc.Formula2
Case xlEqual
Resultat = "Egal à " & Fc.Formula1
Case xlNotEqual
Resultat = "Différent de " & Fc.Formula1
Case xlGreater
Resultat = "Supérieur à " & Fc.Formula1
Case xlLess
Resultat = "Inférieur à " & Fc.Formula1
Case xlGreaterEqual
Resultat = "Supérieur ou égal à " & Fc.Formula1
Case xlLessEqual
Resultat = "Inférieur ou égal à " & Fc.Formula1
End Select
Else
'Si la MFC est de type "La formule est"
Resultat = "La formule est " & Fc.Formula1
End If
MsgBox Resultat
Next Fc
End If
End Sub
1 2