OVH Cloud OVH Cloud

Mise en forme en fonction de la police

8 réponses
Avatar
Richard G.
Bonjour =E0 tous,

j'ai un fichier xls avec plusieurs onglets.
Le texte dans certaines cellules de plusieurs onglets est en police en
italique, normal, bleu.
J'aimerai le changer en police normal, gras, noir.

Peut-on faire une mise en forme conditionnelle ? Je sais que =E7a marche
en fonction de la valeur de la cellule. Mais est-ce que =E7a marche
aussi en fonction du format de la police ?
Sinon, est-ce que vous auriez une id=E9e de code vba ?

Toutes les id=E9es sont les bienvenues.=20
Merci par avance.=20

A+

8 réponses

Avatar
DOC Prod
Salut R.G,

tu connais un peu VBA ?
Avatar
Richard G.
Oui. Je fais qq macro assez simples.
Pourquoi ? Tu verrais plutôt une macro ?
Avatar
michdenis
Bonjour Richard,

Dans un module standard de ton classeur copie la procédure suivante :

La procédure va transformer toutes les cellules de toutes les feuilles de ton classeur qui ont ces caractéristiques :
Police en italic, bleu , gras en Police normal , noir , gras


'--------------------------------
Sub TrouverFormat()

Dim Rg As Range, Sh As Worksheet
Dim LeCellFormat As CellFormat
On Error Resume Next
Set LeCellFormat = Application.FindFormat

'Détermine les caractéristiques
'du format de cellule recherché.
With LeCellFormat
.Clear 'S'assurer d'effacer les critères
'des anciennes recherches
.Font.Italic = True
.Font.Bold = True
.Font.Color = vbBlue
End With

'Détermine la plage de cellules où s'effectue
'la recherche

For Each Sh In Worksheets
With Sh
Set Rg = .UsedRange
End With

'Trouve la cellule ayant le bon format pour
'y effectuer une ou des opérations quelconques...
With Rg
Set C = .Find(What:="", SearchFormat:=True)
If Not C Is Nothing Then
adr = C.Address
Do
'Le code que tu veux exécuter avec la cellule trouvée
With C.Font
.Italic = False
.Color = vbBlack
End With
'pour passer à la cellule suivante ...
Set C = .Find(What:="", after:¬tiveCell, SearchFormat:=True)
Loop Until C Is Nothing Or C.Address = adr
End If
End With
Next
Set Rg = Nothing: Set Sh = Nothing
End Sub
'--------------------------------


Salutations!




"Richard G." a écrit dans le message de news:
Bonjour à tous,

j'ai un fichier xls avec plusieurs onglets.
Le texte dans certaines cellules de plusieurs onglets est en police en
italique, normal, bleu.
J'aimerai le changer en police normal, gras, noir.

Peut-on faire une mise en forme conditionnelle ? Je sais que ça marche
en fonction de la valeur de la cellule. Mais est-ce que ça marche
aussi en fonction du format de la police ?
Sinon, est-ce que vous auriez une idée de code vba ?

Toutes les idées sont les bienvenues.
Merci par avance.

A+
Avatar
Richard G.
Merci chef.
Quand je lance le code, le débogueur affiche pour Dim LeCellFormat As
CellFormat
"type défini par l'utilistauer non défini "
Hein ? No comprendo.
Tu vois ce que c'est ?

Merci par avance.

A+
Avatar
michdenis
Bonjour Richard,

Quel est la version de ton application Excel ? 97 ou 2000 ?

Ce type de procédure devrait fonctionner pour excel 2002 et 2003. Pour la version 2000... je ne sais pas. Mais je serais très
surpris que cela soit disponible pour la version 97.


Salutations!


"Richard G." a écrit dans le message de news:
Merci chef.
Quand je lance le code, le débogueur affiche pour Dim LeCellFormat As
CellFormat
"type défini par l'utilistauer non défini "
Hein ? No comprendo.
Tu vois ce que c'est ?

Merci par avance.

A+
Avatar
Richard G.
Excel 2000.
Je ne comprends pas non plus.
Avatar
DOC Prod
Hei !

merci Michdenis

aî wause ocupeud.
Avatar
michdenis
Bonjour Richard,

Tu as ceci bien que le traitement soit beaucoup plus long si ta plage dans chaque feuille est grande :

'-----------------------------------
Sub RemplacerFormat()
Dim Sh As Worksheet
Application.ScreenUpdating = False
For Each Sh In Worksheets
For Each C In Sh.UsedRange.SpecialCells(xlCellTypeConstants)
With C.Font
If .Italic = True And .Bold = True And .Color = vbBlue Then
.Italic = False: .Color = vbBlack
End If
End With
Next
Next
Set Sh = Nothing
End Sub
'-----------------------------------


Salutations!



"Richard G." a écrit dans le message de news:
Excel 2000.
Je ne comprends pas non plus.