Colorer case si non-vide avec VBA

Bonjour,

Pour le travail je dois créer une macro VBA pour faire de la mise en page, mais je suis débutant en VBA.

Je veux sélectionner une plage de cases précise sur une feuille en particulier et colorer chaque case en rouge si la case est "non vide".

Je ne peux pas passer par la MFC car l'excel est généré par un logiciel qui applique la même MFC sur toutes les feuilles alors que je veux pouvoir différencier les cases suivant les feuilles.

Si quelqu'un peut m'aider...

Merci d'avance

Bonjour

Sans fichier exemple pas grand chose à faire

Il faudrait un fichier Excel, ou du code?

Parce que pour l'instant je suis au niveau Zéro...

J'arrive a sélectionner la plage de cellules avec ça:

Sub test()

    Sheets("Feuil1").Activate
    ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select

End Sub
Mais après je bloque ,je ne sais pas quelle formule utiliser pour colorer les cellules qui ne sont non-vides..

Bonjour à tous,

Un essai....

Sub test()
 Dim ma_selection, cel As Range
  On Error Resume Next
   Set ma_selection = Application.InputBox("Choisissez une cellule ou une plage", Type:=8)
    For Each cel In ma_selection
     cel.Interior.ColorIndex = IIf(cel.Value = "", xlNone, 3)
    Next cel
End Sub

Cordialement,

Merci pour ta réponse xorsankukai!

C'est pas mal! Par contre est-ce qu'il est possible d'automatiser le choix des cellules?

Par exemple choisir la plage de cellule entre B3 et F10 sur l'onglet "Feuil1" plutôt que devoir sélectionner a la main?

J'ai réussi a modifier ce que tu m'as envoyé pour que les cellules soit choisi de base:

Sub test()
Sheets("Feuil1").Activate
 Dim ma_selection, cel As Range
  On Error Resume Next
   Set ma_selection = ActiveSheet.Range(Cells(3, 4), Cells(11, 5))
    For Each cel In ma_selection
     cel.Interior.ColorIndex = IIf(cel.Value = "", xlNone, 3)
    Next cel
End Sub

Par contre, je n'arrive pas le faire ce répéter sur les autres feuilles, j'avais pensé à ça, mais ça marche pas...

Sub test()
Sheets("Feuil1").Activate
 Dim ma_selection, cel As Range
  On Error Resume Next
   Set ma_selection = ActiveSheet.Range(Cells(3, 4), Cells(11, 5))
    For Each cel In ma_selection
     cel.Interior.ColorIndex = IIf(cel.Value = "", xlNone, 3)
    Next cel
Sheets("Feuil2").Activate
 Dim ma_selection, cel As Range
  On Error Resume Next
   Set ma_selection = ActiveSheet.Range(Cells(4, 8), Cells(10, 12))
    For Each cel In ma_selection
     cel.Interior.ColorIndex = IIf(cel.Value = "", xlNone, 3)
    Next cel
End Sub

il ne se passe plus rien, même sur la Feuil1 qui marchait juste avant.

Re,

Merci pour ton retour,

Sub test()
 Dim plage As Range, cel As Range, sh As Worksheet

  Application.ScreenUpdating = False

  For Each sh In ThisWorkbook.Worksheets 'pour toutes les feuilles du classeur
   With sh
    Set plage = .Range("B3:F10")
     For Each cel In plage
      cel.Interior.ColorIndex = IIf(cel.Value = "", xlNone, 3)
     Next cel
   End With
  Next sh
End Sub

Cordialement,

Ah encore mieux!

Mais un dernier truc quand même, je voudrais pouvoir choisir pour chaque feuille la plage de cellule.

Par exemple dire B3:F10 pour Feuil1, mais C4:M8 pour Feuil2... etc

Re,

Peut-être ainsi :

Sub test()
 Dim plage As Range, cel As Range, sh As Worksheet

  Application.ScreenUpdating = False

  For Each sh In ThisWorkbook.Worksheets 'pour toutes les feuilles du classeur
    Select Case sh.Name
     Case Is = "Feuil1": Set plage = sh.Range("B3:F10")
     Case Is = "Feuil2": Set plage = sh.Range("C4:M8")
     '.....  = ....... : ......... = ..................
     'etc....
    End Select
     For Each cel In plage
      cel.Interior.ColorIndex = IIf(cel.Value = "", xlNone, 3)
     Next cel
  Next sh
End Sub

Cordialement,

Merci beaucoup, c'est parfait!

J'étais pas prêt d'y arriver seul, merci!

Rechercher des sujets similaires à "colorer case vide vba"