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