changer police en italique vba

changer police en italique vba - VB/VBA/VBS - Programmation

Marsh Posté le 13-10-2011 à 11:31:17    

Bonjour,
 
je cherche à changer la couleurs de toutes les polices écrites en italique dans un classeur :
 
Quand je le fais sur une cellection stricte (une cellule précise) cela fonctionne avec ce code :

Code :
  1. If Sheets("CHARGES 2" ).Range("L27" ).Font.Italic = True Then MsgBox "zytzhtht"


 
par contre ça ne fonctionne pas lorsque je veux l'appliquer sur toutes les feuilles :

Code :
  1. If Sheets.Cells.Font.Italic = True Then MsgBox "zytzhtht"


 
j'ai donc deux problèmes : isoler le texte en italique lorsqu'il y a également du texte normal et appliquer le tout à toutes les feuilles du classuer.
 
Quelqu'un peut il maider ?
 
merci

Reply

Marsh Posté le 13-10-2011 à 11:31:17   

Reply

Marsh Posté le 13-10-2011 à 12:08:51    

Je crois qu'il faudrait faire une boucle sur toutes les feuilles,
et une boucle sur toutes les cellules :

  For i_sheet = 1 To ThisWorkbook.Sheets.Count
     For i_cell = 1 To ThisWorkbook.Sheets(i_sheet).Count
       If (Sheets(i_sheet).Cells(i_cell).Font.Italic = True) Then
          ...
       End If
     Next
   Next


Message édité par olivthill le 13-10-2011 à 12:10:10
Reply

Marsh Posté le 13-10-2011 à 18:20:50    

Merci pour ta réponse olivthill !
 
cependant, vba bloque sur cette ligne

Code :
  1. For i_cell = 1 To ThisWorkbook.Sheets(i_sheet).Count


 
Propriétée ou méthode non gérée par cet objet.

Reply

Marsh Posté le 13-10-2011 à 18:59:19    

C'est  

Code :
  1. For i_cell = 1 To ThisWorkbook.WorkSheets.Count

Reply

Marsh Posté le 14-10-2011 à 08:58:40    

Merci FlorentG. je n'ai plus de message d'erreur avec ce code.
 
Mon but est de mettre en blanc toutes les polices en italique du classeur mais je ne sais pas comment faire. Et quand je lui dis d'afficher un msgbox (pour faire un essai) s'il y a des polices en italique, rien ne sepasse alors que j'ai bien des caractères en italique dans mes onglets.
 
Voici mon code où rien ne se passe :
 

Code :
  1. Sub italique()
  2.   For i_sheet = 1 To ThisWorkbook.Sheets.Count
  3.      For i_cell = 1 To ThisWorkbook.Worksheets.Count
  4.        If (Sheets(i_sheet).Cells(i_cell).Font.Italic = True) Then
  5. msgbox"hkjhjh"
  6.        End If
  7.      Next
  8.    Next
  9. End Sub

Reply

Marsh Posté le 14-10-2011 à 09:01:56    

Est-ce que les cellules en italique sont dans une plage spéciale (colonne ou ligne précise), où est-ce qu'elles peuvent être n'importe où dans la feuille ?

Reply

Marsh Posté le 14-10-2011 à 09:22:13    

FlorentG a écrit :

Est-ce que les cellules en italique sont dans une plage spéciale (colonne ou ligne précise), où est-ce qu'elles peuvent être n'importe où dans la feuille ?


 
Ces cellules peuvent etre n'importe où dans n'importe quelle feuille.

Reply

Marsh Posté le 14-10-2011 à 09:31:14    

Ok, on va utiliser le UsedRange alors, qui retourne la plage utilisée (au lieu de scanner même les zones vides à la fin).
 
Essaye avec ça (ça met en bleu les cellules en italique) :

Code :
  1. Public Sub Italique()
  2.  
  3.    Dim Sheet As Worksheet, Cell As Range
  4.  
  5.    For Each Sheet In ThisWorkbook.Worksheets
  6.        For Each Cell In Sheet.UsedRange.Cells
  7.            If Cell.Font.Italic Then
  8.                Cell.Font.Color = RGB(0, 0, 255)
  9.            End If
  10.        Next
  11.    Next
  12.  
  13. End Sub

Reply

Marsh Posté le 14-10-2011 à 10:02:27    

Merci beaucoup FlorentG, ça fontionne parfaitement !!!!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed