Macro

Médite -  
 Médite -
Bonjour,

J'ai une macro de recherche que j'ai trouvé sur votre site et que j'ai déjà un peu modifié pour pouvoir faire mes recherches mais je voudrais ajouter une fonction supplémentaire.

A la feuil2 lorsque j'utilise la cellule A2 pour lui demander ce que je recherche et qu'il me saisi en ligne A à C toutes les données. Est.ce possible que si je double clique sur une donnée recherchée ca me renvoie à la feuil1 où se situe l'information (un peu un retour à l'information de base). Est.ce que quelqu'un peut m'aider à compléter cette macro ?

Merci d'avance pour votre aide.

Sub cherche_texte()
Dim adr As String
li = 7
With Sheets("Feuil2")
tro = .Range("a2")
.Range("a7:a1000") = MEI
.Range("b7:b1000") = MEI
.Range("c7:b1000") = MEI

End With
With Sheets("Feuil1").Range("C19:J22")
Set c = .Find(tro, LookIn:=xlValues)
If Not c Is Nothing Then
preadr = c.Address
Do
adr = c.Row
Sheets("Feuil2").Cells(li, 1).Value = Cells(adr, 3) & "-" & Cells(adr, 6)
Sheets("Feuil2").Cells(li, 2).Value = Cells(adr, 9)
Sheets("Feuil2").Cells(li, 3).Value = Cells(adr, 8)
li = li + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> preadr
End If
End With
End Sub

9 réponses

  1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Au passage : pour ceci
    With Sheets("Feuil2") 
    tro = .Range("a2") 
    .Range("a7:a1000") = MEI 
    .Range("b7:b1000") = MEI 
    .Range("c7:b1000") = MEI 
    
    End With

    A remplacer par :
    With Sheets("Feuil2") 
    tro = .Range("a2") 
    .Range("A7:C1000") .Clear 
    End With


    Quand est-il de ma proposition de procédure ?
    1
  2. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Avec cette procédure, à mettre dans le module de la feuille 2, le double clic sur la cellule A2 activera la feuille 1 :
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    If Target.Address = "$A$2" Then 
     Sheets("feuil1").Activate 
    End If 
    End Sub


    En marge: quand à complèter votre macro, il faudrait déjà comprendre se qu'elle est sensé réaliser ( déjà avec un [MEI] qui sort de nul part !)
    --
    Salutations.
    Le Pingou
    0
  3. Médite
     
    Bonjour,

    Tout d'abord je tiens à te remercier pour ta réponse.

    Tu peux remplacer le mot MEI par .clear.

    La cellule A2 sert à mettre le mot que je recherche. Exemple : 52289JJJ

    Ca m'affiche le résultat à partir de la ligne 7

    52289JJJ 01.02.2010 K (Ligne A7) Idem pour les autres infos (Ligne B7)....
    52289JJJ 01.02.2010L (Ligne A8)
    52289JJJ 01.05.2010O (Ligne A9)

    Je voudrais rajouter que lorsque je clique sur le 01.02.2010L ca m'ouvre la feuil1 et la ligne de la cellule où il a été cherché l'information. :-)

    Merci d'avance :-)
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Médite
     
    Oui ca me renvoie à la feuil1 mais je voudrais qu'il me renvoie à la ligne exact où se trouve la donnée. Comment est-ce qu'il faut faire?

    Oui merci pour tes conseils. :-)
    0
  6. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Oui mais comment est le résulta exact (par exemple dans la ligne 7 )
    car ce n'est pas :
    52289JJJ 01.02.2010 K (Ligne A7) Idem pour les autres infos (Ligne B7)....

    mais peut-être selon votre code (les valeurs des cellules C22 et F22 sont concaténées) , comme ceci dans l'ordre cellule A7;B7;C7

    Valeur Col 3/ li 22-Valeur Col 6/ li 22 ; Valeur Col 9/ li 22 ; Valeur Col 8/ li 22

    Est-ce correct ?
    0
  7. Médite
     
    Oui c'est exact c'est pour ca que je voudrais que ca me renvoie à la ligne. :-)
    0
  8. Médite
     
    Superbe c'est exactement ce que je voulais. Je te remercie infiniment Pingou.

    :-) ;-)
    0