• Initiateur de la discussion Initiateur de la discussion Danielle444
  • 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 !

D

Danielle444

Guest
Bonjour,

J'ai un code VBA pour mettre en couleur le fond des cellules il fonctionne très bien sur une valeur de cellule entière (MALADE) mais j'aimerai qu'il fonctionne aussi sur les cellules contenant une phrase (toto est MALADE) le code est le suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([ChampMFC], Target) Is Nothing Then
On Error Resume Next
Target.Interior.ColorIndex = [couleurs].Find(Target, LookAt:=xlPart, MatchCase:=False _
, SearchFormat:=False).Interior.ColorIndex
End If
End Sub

Merci d'avance
 
Re : MFC par VBA

Bonjour Danielle,

un essai

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule as Range
If Not Intersect([ChampMFC], Target) Is Nothing Then
On Error Resume Next
For Each Cellule in Range("Couleurs")
If Target.Value Like "*" & Cellule.value & "*" then
Target.Interior.ColorIndex = Cellule.Interior.ColorIndex
Exit For
end If
Next
End If
End Sub
 
Re : MFC par VBA

Bonjour Danielle44
A tester

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([ChampMFC], Target) Is Nothing Then
for each coul in [couleurs]
  if instr(target,coul.value)<>0 then Target.Interior.ColorIndex =coul.interior.colorindex
next 
End If
End Sub

Edit: Salut Tototiti
 
Re : MFC par VBA

Merci pour vos réponses super rapides mais ça ne marche toujours pas 😱

En fait dans [couleurs] zone comportant les codes
et dans champMFC zone à mettre en forme

Merci
 
Dernière modification par un modérateur:
Re : MFC par VBA

Salut PierreJean 😉
Re,

Nos codes sont trés proches, ça ne m'étonnes pas que si l'un ne fonctionne pas, l'autre non plus

VBA est sensible à la casse, est-ce que tu as un malade en majuscules et l'autre en minuscules ?

si oui, essaye

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule as Range
If Not Intersect([ChampMFC], Target) Is Nothing Then
On Error Resume Next
For Each Cellule in Range("Couleurs")
If ucase(Target.Value) Like "*" & ucase(Cellule.value) & "*" then
Target.Interior.ColorIndex = Cellule.Interior.ColorIndex
Exit For
end If
Next
End If
End Sub

ou

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([ChampMFC], Target) Is Nothing Then
for each coul in [couleurs]
  if instr(ucase(target),ucase(coul.value))<>0 then Target.Interior.ColorIndex =coul.interior.colorindex
next 
End If
End Sub
 
Re : MFC par VBA

Bonjour,

http://boisgontierjacques.free.fr/fichiers/MFC/MFCPlus3coul.xls (cf cas3)

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect([ChampMFC], Target) Is Nothing Then
    Target.Interior.ColorIndex = xlNone
    For Each c In [couleurs]
      If InStr(UCase(Target), UCase(c)) > 0 And c <> "" Then Target.Interior.ColorIndex = c.Interior.ColorIndex
    Next
  End If
End Sub

JB
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
507
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
587
Réponses
14
Affichages
484
Réponses
4
Affichages
521
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour