Rech 1 valeur dss une plage & renvoi titre colonn
Am
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,
Je souhaite rechercher une valeur dans une plage de cellules (ex : J3:AA19) et lorsque la valeur est trouvée, afficher le titre de la colonne.
Il s'agit d'un tableau qui affiche les étapes d'un projet et une fois par ligne, il est indiqué "en attente" (càd là où on en est. Exemple : facturation). Je souhaiterais afficher dans un tableau le titre de la colonne où se trouve le "en attente". Je ne sais pas si je suis claire...
Je souhaite rechercher une valeur dans une plage de cellules (ex : J3:AA19) et lorsque la valeur est trouvée, afficher le titre de la colonne.
Il s'agit d'un tableau qui affiche les étapes d'un projet et une fois par ligne, il est indiqué "en attente" (càd là où on en est. Exemple : facturation). Je souhaiterais afficher dans un tableau le titre de la colonne où se trouve le "en attente". Je ne sais pas si je suis claire...
1 réponse
-
Bonjour,
Voir ceci en vba:
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel#exemple-d-utilisation
ce qui donne:
Sub Cherche() 'déclaration des variables : Dim Trouve As Range, PlageDeRecherche As Range Dim Valeur_Cherchee As String, AdresseTrouvee As String '********* à adapter *********** 'affectation de valeurs aux variables : 'on cherche le mot "Trouve" Valeur_Cherchee = "Trouve" 'dans la première colonne de la feuille active Set PlageDeRecherche = ActiveSheet.Range("J3:AA19") '******************************* 'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole) Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole) 'traitement de l'erreur possible : Si on ne trouve rien : If Trouve Is Nothing Then 'ici, traitement pour le cas où la valeur n'est pas trouvée AdresseTrouvee = Valeur_Cherchee & " n'est pas présent dans " & PlageDeRecherche.Address Else 'ici, traitement pour le cas où la valeur est trouvée AdresseTrouvee = Trouve.Address End If MsgBox AdresseTrouvee MsgBox Trouve.Column 'colonne MsgBox Trouve.Row 'ligne MsgBox Cells(1, Trouve.Column).Value 'en-tete colonne 'vidage des variables Set PlageDeRecherche = Nothing Set Trouve = Nothing End Sub
Tu remplaces les MsgBox par des variables
Voilà