Macro couleur fond

Bonjour,

Je souhaite créer une macro qui mets en jaune les celulles égal à france et après qui mets en jaune les 2 cellules à sa droite sur toutes les feuilles du classeur.

Merci de votre aide

Bonjour,

Voir ci-joint le fichier, ou ci-arpès le code :

Private Const SEARCHED_WORD As String = "france"

Sub changeColors()
  Dim sht As Worksheet
  For Each sht In ThisWorkbook.Worksheets
    Dim cell As Range
    Dim cellsToEvaluate
    On Error Resume Next
    Set cellsToEvaluate = sht.Cells.SpecialCells(xlCellTypeConstants, 23)
    On Error GoTo 0
    For Each cell In cellsToEvaluate.Cells
      If cell.Value2 = SEARCHED_WORD Then
        Range(cell, cell.Offset(0, 2)).Interior.Color = RGB(255, 255, 0)
      End If
    Next cell
  Next sht
End Sub

Note : le code est Case sensitive, il ne detecte que "france", pas "France" ou "FRANCE". Pour ne pas faire attention aux majuscules, remplacer le if par

If InStr(1, cell.Value2, SEARCHED_WORD, vbTextCompare) Then

Bonjour,
Une petite variante.
Cdlt.

Public Sub changeColors()
Dim wb As Workbook, ws As Worksheet
Dim cell As Range, rngCells As Range

    Set wb = ActiveWorkbook
    For Each ws In wb.Worksheets
        On Error Resume Next
        Set rngCells = ws.Cells.SpecialCells(xlCellTypeConstants, 2)
        On Error GoTo 0
        If Not rngCells Is Nothing Then
            For Each cell In rngCells.Cells
                If VBA.LCase(cell.Value) = "france" Then
                    cell.Resize(1, 3).Interior.Color = vbYellow
                End If
            Next cell
        End If
    Next ws

End Sub
Rechercher des sujets similaires à "macro couleur fond"