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

Recherche et affichage colonne

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 !

jorisphi

XLDnaute Occasionnel
Bonjour

J'ai un fichier de données qui reprend beaucoup de colonnes et j'aimerai qu'il me positionne sur la colonne rechechée en fonction d'un critère donné
Est possible avec une formule excel ou en VBA ?.....

Je joins un exemple en annexe

Merci d'avance pour votre aide
Cordialement
 

Pièces jointes

Re : Recherche et affichage colonne

Bonjour

Mettre ceci dans le code de la feuille et doubleclic sur la cell C11 après le changement de date et elle selectionne la cell

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
For i = 2 To 9
If Cells(3, i) = Range("C11") Then Cells(3, i).Select: Exit Sub
Next i
End Sub

Tu peut aussi te faire une liste de validation en C11

A++

Temjeh
 
Re : Recherche et affichage colonne

Merci Temjeh
pour ta réponse rapide et solution

Je ne suis pas un connaisseur en VBA
J'ai copié ta macro et il me donne le message suivant "Erreur de compilation"

Ai-je fait une mauvaise manip ?......
Je te joins mon fichier
Peux-tu le corriger et le tester ?

Grand merci pour ton aide
Cordialement
 

Pièces jointes

Re : Recherche et affichage colonne

Bonjour Catrice

Un TOUT TOUT MERCI
Votre aide m'a été très précieuse
Votre macro fonctionne à merveille
Je la teste sur mon fichier ce soir
et je vous tiendrai au courant

Cordialement votre

PS: Question pour améliorer la macro :Si je ne trouve pas cette date, peut-on m'avertir
avec un Msgbox ?.....("Date introuvable" .....par exemple)
Encore un grand merci
Je joins mon fichier
 

Pièces jointes

Re : Recherche et affichage colonne

Bonjour Jean Marcel

Un TOUT TOUT MERCI
Votre aide m'a été très précieuse
Votre macro fonctionne à merveille
Je la teste sur mon fichier ce soir
et je vous tiendrai au courant

Cordialement votre
 
Re : Recherche et affichage colonne

Pour ton fichier attachés Rech aff Colonne (Rep 4)(Correct).xls
si tu ajoutes msgbox change ce code

Code:
Lig = Range("A65536").End(xlUp).Row
Range("B3").CurrentRegion.Resize(Lig - 2).Interior.ColorIndex = xlNone
Var1 = Application.Match(ActiveSheet.Range("C11").Value2, ActiveSheet.Range("A3:IV3"), 0)
If Not IsError(Var1) Then
    Cells(3, Var1).Select
    Range(Cells(3, Var1), Cells(Lig, Var1)).Interior.ColorIndex = 4
    Else
    MsgBox "Date inexistante!"
End If

A++

Temjeh
 
Re : Recherche et affichage colonne

Bonjour

Puis-je une nouvelle fois demander votre aide (Je ne suis pas expert en VBA)
Vous m’aviez rédigé une programmation VBA, mais je n’arrive pas à l’appliquer à mon fichier .J’ai pourtant modifier les cellules correspondantes
La macro s'appelle "RechDate"
1) La recherche ne se positionne pas sur le colonne recherchée
2) Le coloriage ne se fait pas à l'endroit demandé
3) Pas de message « Date inexistante »

Autre chose, Je suis obligé de lancer manuellement l’exécution de la Macro, alors que je voudrais que celle-ci se déclenche dès que la cellule est saisie

Je joins votre fichier ainsi que le mien"Test(1)" (si mot de passe , celui-ci est "Vide"
Merci d’avance de corriger ma macro "RechDate"
ainsi que pour votre aide
 

Pièces jointes

Dernière édition:
Re : Recherche et affichage colonne

Bonsoir

Voilà c'est fait sauf qu'il met en vert seulement la cell de la date sélectionnée car les autres cells de sa colonnes on une mise en forme conditionnelle!

A++

Temjeh
 
Dernière édition:
Re : Recherche et affichage colonne

Voilà c'est fait sauf qu'il met en vert seulement la cell de la date sélectionnée car les autres cells de sa colonnes on une mise en forme conditionnelle! ...donc impossible

Code:
Sub Rech_Date()

Lig = 31
Range("D2").CurrentRegion.Resize(Lig).Interior.ColorIndex = xlNone
Var1 = Application.Match(ActiveSheet.Range("B1").Value2, ActiveSheet.Range("B2:IV2"), 0)
If Not IsError(Var1) Then
    Cells(2, Var1).Select
    Range(Cells(2, Var1), Cells(Lig, Var1)).Interior.ColorIndex = 4
    Else
    MsgBox "Date inexistante!"
End If

End Sub

Aussi il manquait ce code dans le module de la feuille:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$1" Then Rech_Date
End Sub



A++

Temjeh

Je ne peut te le renvoyé il a + de 50k
 
Dernière édition:
Re : Recherche et affichage colonne

Bonjour Temjeh

Encore MERCI pour votre aide
Excusez-moi si j'use de votre patience et de votre temps , mais je suis un débutant qui grâce à vous et d'autres, peut progresser dans mes connaissances en VBA.
Qui sait, un jour je pourrai aider à mon tour d'autres personnes (Je l'espère)

En Effet, votre Macro marchait très, c'est moi qui ait oublié un code

Un petite chose encore :
Lorsque j'encode donc la date en recherche, elle se positionne sur la date précédente
J'ai essayé par mes propres moyens de modifier certains paramètres de votre macro, mais je n'y suis pas arrivé.
Peut-être à cause que j'ai un colonne masquée (Colonne C)
Pourriez-vous regarder de votre côté ?
Vous constaterai que j'ai modifié les MFCondit pour que la couleur "verte" s'affiche lors du positionnement sur la colonne recherchée

Encore MERCI pour votre aide
Cordialement

PS : je joins mon fichier
 

Pièces jointes

Dernière édition:
Re : Recherche et affichage colonne

Bonjour

Change ces lignes(je ne sais pas trop pourquoi ca fait cela...? mais ce n'est pas moi qui a débuté ce code:

Code:
Cells(2, Var1[color=red] + 1[/color]).Select
Range(Cells(2, Var1[color=red] + 1[/color]), Cells(Lig, Var1[color=red] + 1[/color])).Interior.ColorIndex = 4


Moi je suis plus a l'aise quand c'est moi qui le fait(je ne suis pas un pro mais je comprend ce que je compose, sans rien enlevé au concepteur du code précèdent), voici le miens avec une boucle sans besoin d'y mettre dans un module, juste y mettre dans le code de la feuille. Donc la macro Sub Rech_Date() n'est plus nécessaire.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
    Range("D2").CurrentRegion.Resize(31).Interior.ColorIndex = xlNone
    For i = 4 To 257
        If i = 257 Then MsgBox "Date inexistante!": Exit Sub
        If Cells(1, 2) = Cells(2, i) Then
           Cells(2, i).Activate
           Range(Cells(2, i), Cells(31, i)).Interior.ColorIndex = 4
           Exit Sub
        End If
    Next i
End If
End sub

PS: N'OUBLIS PAS QUE SI TU AJOUTE DES LIGNES TU CHANGE LE 31 (qui est la dernière ligne pour ton vert)
A++

Temjeh
 
Dernière édition:
Re : Recherche et affichage colonne

Bonjour,

A priori, c'est moi qui est commis ce code :
Code:
Var1 = Application.Match(ActiveSheet.Range("B1").Value2, ActiveSheet.Range("[COLOR="Blue"][B]A[/B][/COLOR]2:IV2"), 0)

Il n'y a pas besoin de rajouter +1, il faut juste ne pas modifier le code d'origine et laisser A2 au lieu de B2.
Ce code évite de faire une boucle.

Sinon, tu peux aussi faire ce qui suit pour éviter le SendKey :
Code:
If vbYes = MsgBox("Cette Commande va écraser les montants déjà encodés" & vbCr & vbCr & vbCr & _
"           Voulez-vous continuer ?", vbExclamation + vbYesNo + [COLOR="blue"][B]vbDefaultButton2[/B][/COLOR], "Copie") Then
 
Dernière édition:
Re : Recherche et affichage colonne

Merci Catrice pour cette explication et je me demande encore pourquoi si on part a B2 ca marche pas.

Je ne connaissais pas le Application.Match que j'ai jamais utilisée.

A++

Temjeh

Merci Catrice je vais m'en servir
 
Dernière édition:
Re : Recherche et affichage colonne

Re,

Match correspond à EQUIV de la feuille de calcul.
Ca renvoi l'index d'une valeur cherchée dans une zone.

Si on cherche une valeur qui se trouve par exemple en C2 :

Si la zone de recherche est B2:G2, ça renvoie 2.
Var1 = 2 et la valeur est en C2
Si ensuite je me sert de Var1 pour creer une adresse du type :
Cells(2, Var1).Select
Ca correspondra à la cellule lig = 2 col = 2 => B2 !

Si en revanche la zone de recherche est A2:G2
Var1 donnera 3
=> Cells(2, Var1).Select
=> Ca correspondra à la cellule lig = 2 col = 3=> C2 😉

Voir le fichier joint pour mieux comprendre
 

Pièces jointes

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

Discussions similaires

Réponses
18
Affichages
538
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…