Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Simplification d'un code pour colorer une cellule via USF (RESOLU)

misteryann

XLDnaute Occasionnel
Bonsoir le forum.
J'ai un code que j'ai bricolé pour colorer une cellule de la colonne 5 en fonction de la valeur trouvé dans la colonne 1 via une USF.
Le code fait 14 lignes mais je pense qu'il est possible de le simplifier ou de le coder différemment.

Cordialement.
 

Pièces jointes

  • Classeur exemple.xlsm
    22 KB · Affichages: 7
C

Compte Supprimé 979

Guest
Bonsoir misteryann

Quelque chose comme ceci par exemple
VB:
Private Sub CommandButton1_Click()
  Dim Trouve As Range
  With Sheets("BPU")
    .Range("E:E").Interior.Color = xlNone
    On Error Resume Next :  Set Trouve = .Range("A:A").Find(TextBox1) :  On Error GoTo 0
    If Not Trouve Is Nothing Then  .Range("E" & Trouve.Row).Interior.Color = RGB(255, 255, 0)
  End With
End Sub
A+
 

misteryann

XLDnaute Occasionnel
Merci BrunoM45
Super. J'ai juste rajouté une ligne pour que la case colorée soit active et un "On Error Resume Next" si le BPU n'existe pas.
C'est possible de rajouter un MsgBox pour signaler que ce BPU n'existe pas?

Code:
Private Sub CommandButton1_Click()
Dim Trouve As Range
  With Sheets("BPU")
    .Range("E:E").Interior.Color = xlNone
    On Error Resume Next:   Set Trouve = .Range("A:A").Find(TextBox1):   On Error GoTo 0
    If Not Trouve Is Nothing Then .Range("E" & Trouve.Row).Interior.Color = RGB(255, 255, 0)
On Error Resume Next
    .Range("E" & Trouve.Row).Select
  End With
End Sub
 
C

Compte Supprimé 979

Guest
Re,
J'ai juste rajouté une ligne pour que la case colorée soit active et un "On Error Resume Next" si le BPU n'existe pas.
Ou là... ce n'est pas comme ça
Voici le code correcte
VB:
Private Sub CommandButton1_Click()
  Dim Trouve As Range
  With Sheets("BPU")
    .Range("E:E").Interior.Color = xlNone
    On Error Resume Next:   Set Trouve = .Range("A:A").Find(TextBox1):   On Error GoTo 0
    If Not Trouve Is Nothing Then
      With .Range("E" & Trouve.Row)
        .Select
        .Interior.Color = RGB(255, 255, 0)
      End With
    Else
      MsgBox "BPU non trouvé :"
    End If
  End With
End Sub
A+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…