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

recherche avec coloriage de cellule

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

melgasa

XLDnaute Nouveau
Bonjour,
je voudrais faire la recherche des données dans une feuille contenant plusieurs données et, si le resultat est trouvé, colorier la cellule en question et passer à la cellule suivante qui est validée.
la recherche se passe comme suit:
dans la feuille données j'entre mes informations et la recherche se fait dans la feuille base et s'il trouve il me colorie la cellule dans la feuille données en vert (où j'ai entré la donnée), sinon en jaune.
Plus tard j'aimeraisque ça se fasse automatiquement dès que les informations changent.
j'ai écrit ce code en vba qui marche pour une colonne et c'est la cellule suivante qui est coloriée surement à cause du offset mais quand je mets range (c) ça ne donne rien . j'aimerais pouvoir le faire pour les données de toutes mes cellules.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 1 And Target.Count = 1 Then
      p = Application.Match(Target, Application.Index([données], , 1), 0)
      If Not IsError(p) Then
        Target.Offset(0, 1).Interior.ColorIndex = 4
        Else
        Target.Offset(0, 1).Interior.ColorIndex = 6
      End If
   End If
End Sub
 

Pièces jointes

Re : recherche avec coloriage de cellule

Je ne comprend pas pourquoi tu utilises Offset, cela te décale la cellule active et je pense ne te sert à rien dans le cas présent.
A mon avis tu devrais au préalable définir la plage à colorier. un peu comme ça :
Code:
Dim rgCol As Range
rgCol = Range("A" & c.Rows & ":G" & c.Rows)

Ensuite tu appliques la couleur sur la plage de cellules
 
Re : recherche avec coloriage de cellule

il ne s'agit pas d'appliquer la couleur à une plage, il s'agit de faire une recherche si le resultat est trouvé alors appliquer une couleur à cette cellule sinon appliquer une autre couleur. mon problème effectivement c'est que je trouve pas la commande pour dire a excel si tu trouves place toi sur la cellule en question et colorie la en vert. je le fais aisement avec offset en lui disant de colorier la cellule suivante.
 
Re : recherche avec coloriage de cellule

Merci mais pourrais tu m'expliquer ton code?
je voudrais quelque chose de dynamique dans mon vba. je ne sais pas si quelqu'un me comprend. je voudrais que la recherche puisse faire dans n'importe quelle cellule et le resultat s'appliqer à la cellule en question par la couleur affectée suivant le résultat (trouvé en vert et pas trouvé en jaune).
 
Re : recherche avec coloriage de cellule

Re-bonjour,

... je voudrais quelque chose de dynamique dans mon vba...le resultat s'appliqer à la cellule en question par la couleur affectée suivant le résultat (trouvé en vert et pas trouvé en jaune).

Hélas, j'avoue ne pas comprendre 😕.

Un autre membre d'XLD saura certainement mieux faire.

Bon courage et à bientôt 🙂
 
Re : recherche avec coloriage de cellule

j'ai moi même trouvé la solution à mon pb mais ça ne marche sue deux colonnes je sais pas trop pourquoi. Quelqu'un pourrait-il examiner ce code pour moi?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
p = Application.Match(Target, Application.Index([courtier], , 1), 0)
m = Application.Match(Target, Application.Index([matricule], , 1), 0)
g = Application.Match(Target, Application.Index([garantie], , 1), 0)
o = Application.Match(Target, Application.Index([opération], , 1), 0)
If Not IsError(p) Or Not IsError(g) Or Not IsError(m) Or Not IsError(o) Then
Target.Offset(0, 0).Interior.ColorIndex = 4
Else
Target.Offset(0, 0).Interior.ColorIndex = 3
End If
End If
End Sub

Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
For Each c In [A2:F13]
p = Application.Match(c, Application.Index([courtier], , 1), 0)
m = Application.Match(c, Application.Index([matricule], , 1), 0)
g = Application.Match(Target, Application.Index([garantie], , 1), 0)
o = Application.Match(Target, Application.Index([opération], , 1), 0)
If Not IsError(p) Or Not IsError(g) Or Not IsError(m) Or Not IsError(o) Then
c.Offset(0, 0).Interior.ColorIndex = 4
Else
c.Offset(0, 0).Interior.ColorIndex = 3
End If
Next c
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • resultat.jpg
    97.9 KB · Affichages: 82
  • resultat.jpg
    97.9 KB · Affichages: 78
  • resultat.jpg
    97.9 KB · Affichages: 87
Dernière édition:
Re : recherche avec coloriage de cellule

bonjour
j'ai un nouveau problème à propos de mon application vb. voila j'aimerais rechercher la valeur d'une cellule dans une autre feuille dans le même classeur. mais attention , la cellule en question n'est pas toujours la meme et la ligne de la feuille de base n'est pas toujours la meme. j'ai vu un exemple lorsque la celle est tjrs la même je l'ai testé ça marche. mais j'arrive pas à le faire dynamiquement.
merci
 
- 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

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…