Creer une macro pour surligner une ligne si la condition est vrai

Ason

XLDnaute Nouveau
Bonjour,

Etant un utilisateur plus que novice dans l'utilisation du langage VBA je viens vous demander un petit coup de main pour solutionner mon problème.
Voila j'aimerai simplement créer une condition qui me permettrai de surligner une ligne dès que celle ci comprend une case nommé "Lyon" ou "Villeurbanne".
A savoir que l'intitulé ce trouve toujours dans la même colonne (D)
Le peu que je connaisse des conditions en VBA concerne une valeur dans une ou des cellule précises je n'arrive pas à appliquer cette solution à l'ensemble de la feuille de calcul.

Merci d'avance pour votre aide :)
 

jmps

Nous a quitté
Repose en paix
Re : Creer une macro pour surligner une ligne si la condition est vrai

Bonjour Ason,

Pas besoin de VBA si j'ai bien compris ta demande.
Une simple mise en forme conditionnelle suffit.
Regarde le tableau joint.
A adapter pour tes besoins.
J'ai mis la mise en forme conditionnelle de A1 à I5 pour l'exemple.

Salut requin, même longueur d'ondes ;)
 

Pièces jointes

  • Ason.xls
    13.5 KB · Affichages: 318
  • Ason.xls
    13.5 KB · Affichages: 353
  • Ason.xls
    13.5 KB · Affichages: 367

Fred0o

XLDnaute Barbatruc
Re : Creer une macro pour surligner une ligne si la condition est vrai

Bonjour Ason et bienvenue sur le forum.

Pour ta demande, pourquoi ne pas utiliser une mise en forme conditionnelle (MFC)plutôt qu'un macro ?

C'est plus simple et tout aussi efficace. Sous réserve que la ville recherchée soit en A1, cette MFC peut être du genre :


MFC.jpg

A+

Edit : Salut CC, JMPS
 

Pièces jointes

  • MFC.jpg
    MFC.jpg
    48.3 KB · Affichages: 486
  • MFC.jpg
    MFC.jpg
    48.3 KB · Affichages: 426

Ason

XLDnaute Nouveau
Re : Creer une macro pour surligner une ligne si la condition est vrai

Merci beaucoup à tous les 3 :)

Je viens de découvrir cette fonction effectivement pourquoi faire simple quand on peut faire compliquer.:p

J'ai donc réussi à m'en sortir grâce à votre aide j'ai juste encore un petit soucis de détail.

Effectivement cette manip à marché pour la plupart des cellules mais elle cible trop précisément le texte en effet dès qu'il y a un espace dans la cellule ou un "cedex" elle ne fonctionne pas.

Y a t-il un moyen de remédier à ça?:confused:
 

Ason

XLDnaute Nouveau
Re : Creer une macro pour surligner une ligne si la condition est vrai

Pour le moment j'avais utiliser la méthode à jmps qui consister à utiliser la règle "utiliser une formule pour déterminer pour quelles cellules le format sera appliqué"
Dans laquelle la commande ressemblé à =OU($D1="Lyon";$D1="Villeurbanne")=VRAI
L'avantage c'est que toute la ligne était surlignée tandis qu'avec la règle "Appliquer une mise en forme uniquement aux cellules qui contiennent" seule la cellule est mise en surbrillance.
Enfin c'est pas grave c'est déja pas mal comme ça.
Merci beaucoup
 

jmps

Nous a quitté
Repose en paix
Re : Creer une macro pour surligner une ligne si la condition est vrai

Doit y avoir moyen avec TROUVE ou CHERCHE de ne prendre en compte qu'une partie de la chaîne mais je suis pas trop formules.
En VBA on a LIKE qui est bien pratique.
Je ne doute pas qu'un formuliste vienne en renfort.
 

jmps

Nous a quitté
Repose en paix
Re : Creer une macro pour surligner une ligne si la condition est vrai

Avec TROUVE mais décomposé en deux MFC. J'ai du mal à le faire avec un OU.

PS : Merci les formulistes :p
 

Pièces jointes

  • Ason.xls
    14 KB · Affichages: 108
  • Ason.xls
    14 KB · Affichages: 124
  • Ason.xls
    14 KB · Affichages: 126
Dernière édition:

dmoluc

XLDnaute Occasionnel
Re : Creer une macro pour surligner une ligne si la condition est vrai

Bonsoir à tous,

voilà la solution vba

code à mettre dans un module, à appeler avec un bouton

souligner suffit dans le code du bouton


Code:
Public Sub souligner()

Dim Lyon As String, Villeurbanne As String, LigneLyon As Long, LigneVilleurbanne As Long
For i = 1 To 200

If Cells(i, 4).Value Like ("*Lyon*") = True Then
Cells(i, 4).Font.Underline = xlUnderlineStyleSingle
ElseIf Cells(i, 4).Value Like ("*Villeurbanne*") = True Then
Cells(i, 4).Font.Underline = xlUnderlineStyleSingle
End If
Next i
End Sub

pour que le code s'exécute automatiquement à mettre dans la feuille concernée :

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)


 If Not Intersect(Target, Range("D1:D200")) Is Nothing Then
 Call souligner
 
     End If

je n'ai fait que souligner le texte qui contient Lyon ou Villeurbanne mais on peu ajouter ce que l'on veut comme mise en forme.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 339
Membres
102 865
dernier inscrit
FreyaSalander