Aller au contenu

[résolu] Colorer cases sur une feuille Excel


Messages recommandés

Posté(e)

Bonjour,

 

tout d'abord , désolé si je poste mon probleme au mauvais endroit.

 

Donc voila mon soucis :

Je suis sur Excel 2003

 

Je souhaite colorer des cases sur une ligne en fonction d'une des cases de celle-ci.

Jusque là, j'arrive.

La ou je bloc c'est pour le faire sur une plage de ligne !

 

Private Sub couleur_auto()
 If Range("E1").Value = "D" Then
 Range("B1:E1").Interior.ColorIndex = 34
 End If
End Sub
-----------------------------------------------------
Private Sub Workbook_Open()
couleur_auto
End Sub

 

J'ai fais en sort que la macro se lance a l'ouverture du fichier excel, d'ailleur c'est possible de faire en sort quel se lance des qu'il y a une modification dans une case de la feuille ? Sinon je rajouterai un raccourci pour la lancer rapidement.

 

Merci d'avance

Circus

Autocad Architecture

Inventor

3d Viz

Paint

  • 3 semaines après...
Posté(e)

J'ai une solution !

 

    
   Private Sub Worksheet_Change(ByVal Target As Range)
     ' Zone 'surveillée" E1:E999
    If Not Intersect(Range("E1:E999"), Target) Is Nothing And Target.Count = 1 Then
       If Target = "D" Then
         Range("B" & Target.Row & ":E" & Target.Row).Interior.ColorIndex = 34
       Else
         Range("B" & Target.Row & ":E" & Target.Row).Interior.ColorIndex = xlNone
       End If
     End If
   End Sub
    

 

code a inserer dans la page.

Autocad Architecture

Inventor

3d Viz

Paint

Posté(e)

Bonjour,

Quand tu dis pour le faire sur une plage de ligne c'est à dir?

Colorer la ligne entière?

Dans ce cas tu peux essayer :

Range("B1:E1").EntireRow.interior.colorIndex = 34

Si tu veux le faire sur plusieur lignes différentes où la cellule de colonne D contient la valeur D, voici un moyen de procédé si tu n'as pas de cellule vide sur la colonne D :

1) Faire un itération sur les cellules de la colonne D

2)tester si la cellule est vide

2.1) si oui quiter l'itération.

2.2) si non, contient-elle la valeur D

2.2.1) si oui colore la plage de cellule (ou la ligne entière au choix)

2.2.2) Si non passer à la cellule suivante

Ce qui te donne en code :

Dim i As Integer
   i = 0
   Do
       i = i + 1
       Select Case (Cells(i, 4).Value)
           Case "D"
               Cells(i, 4).EntireRow.Interior.ColorIndex = 34  'Colore la ligne entière
               'Range(Range(Cells(i, 2), Cells(i, 5))).Interior.ColorIndex = 34  pour colorer juste ta plage de cellule sur la ligne
       End Select
   Loop Until (Cells(i, 4).Value = Empty)

Remarque tu peux emplacer le select case par if then else si tu n'as qu'un cas à traiter.

Cordialement.

Petit à petit on devient moins petit

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité