Mise en forme conditionnelle par macro

  • Initiateur de la discussion Initiateur de la discussion nak
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nak

XLDnaute Occasionnel
Bonjour à tous,

Je viens de récupérer un petit code au quel j'ai fait quelques modifications.
En gros lorsque je tape 1 dans la colonne deux, la cellule et la police deviennent d'une certaine couleur. En plus de la couleur j'applique une bordure sur cette même cellule.

Voici le code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Dim Couleur As Integer, I As Integer, R As Long
R = Target.Row
Select Case UCase(Target)
Case "1": Couleur = 6
Case "2": Couleur = 4
Case "3": Couleur = 45
Case "4": Couleur = 38
Case "5": Couleur = 33
Case Else: Couleur = 0
End Select
For I = 2 To 2
Cells(R, I).Interior.ColorIndex = Couleur
Cells(R, I).Font.ColorIndex = Couleur
Cells(R, I).Borders.ColorIndex = 16
Next
End If
End Sub

J'aimerais modifier cette macro de façon que lorsque je tape autre chose que l'un de mes cinq cas la bordure ne soit pas appliquée (Cells(R, I).Borders.ColorIndex = 16).

Autre problème, quand je fais une sélection multiple de cellules et que je tape supprime ma macro plante. Le debbug me dit que cela vient de la ligne "Select Case UCase(Target)", cette fonction doit être attribuée à une seule cellule...

Pouvez vous m'aider à régler ces deux problèmes SVP ?

Merci

Nak
 
Re : Mise en forme conditionnelle par macro

Bonsoir
De cette façon?
HTML:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 Then
Dim Couleur As Integer, I As Integer, R As Long
R = Target.Row
Select Case UCase(Target)
Case "1": Couleur = 6
Target.Font.ColorIndex = Couleur
Target.Borders.ColorIndex = 16
Case "2": Couleur = 4
Target.Font.ColorIndex = Couleur
Target.Borders.ColorIndex = 16
Case "3": Couleur = 45
Target.Font.ColorIndex = Couleur
Target.Borders.ColorIndex = 16
Case "4": Couleur = 38
Target.Font.ColorIndex = Couleur
Target.Borders.ColorIndex = 16
Case "5": Couleur = 33
Target.Font.ColorIndex = Couleur
Target.Borders.ColorIndex = 16
Case Else: Couleur = 0
End Select
'For I = 2 To 2
'Cells(R, I).Interior.ColorIndex = Couleur
'Cells(R, I).Font.ColorIndex = Couleur
'Cells(R, I).Borders.ColorIndex = 16
'Next
End If
End Sub
 
Re : Mise en forme conditionnelle par macro

Bonsoir et merci pour cette réponse très rapide. En plus cela fonctionne très bien 🙂
J'ai juste ajouté la couleur de cellule. Plus d'erreur lorsque j'efface une sélection de plusieurs cellules.

Merci beaucoup pour ton aide.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
173
Réponses
4
Affichages
254
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
536
Réponses
4
Affichages
212
Retour