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

roidurif

XLDnaute Occasionnel
Bonjour,

j'ai une macro qui me permet d'aller rechercher une donnée de l'onglet A, dans une BDD de l'onglet B.

ce que je n'arrive pas à faire c'est de faire en sorte, en saisissant une donnée et en validant sur la touche entrée, ça va aller récupéré la donnée dans le 2 eme onglet. c'est une sorte de recherche V en macro. Je souhaite utiliser sans qu on utilise une formule


Code:
Sub RechercheCopie()
Dim Nom As String, i As Long, j As Long
Sheets(1).Select
i = 2
With Sheets(2)
  Do While Cells(i, 1) <> ""
    Nom = Cells(i, 1)
    For j = 1 To .Range("A65536").End(xlUp).Row
      If Nom = .Cells(j, 1) Then
        Cells(i, 2) = .Cells(j, 2)
        Exit For
      End If
    Next
    i = i + 1
  Loop
End With
End Sub

merci de votre aide svp
 
Dernière édition:
Re : Macro : recherche

Bonsoir Roidurif, bonsoir le forum,

En pièce jointe un fichier avec le code commenté à adapter qui pourrait t'aider... Mais une formule restera toujours bien plus efficace pour ce genre d'action.
 

Pièces jointes

Re : Macro : recherche

Bonjour robert,

Merci de ton aide, j'essaye de me plancher depuis hier soir, pour regarder ton code, je ne sais pas comment faire pour que la saisie se fasse entre A1 et A10 (10 premieres lignes).

Dois je repeter 10 fois ce codes? Pour A1, A2, A3, A4, A5....

merci robert de ton aide
 
Re : Macro : recherche

bonjour roidurif, Robert,

je me permet de répondre à la place de Robert vu qu'il n'est pas là...
essaye en remplaçant la ligne
Code:
If Target.Address <> "$A$1" Then Exit Sub 'si l'édition se fait ailleurs qu'en A1, sort de la procédure
par
Code:
If Application.Intersect(Target, Range("A1:A10")) Is Nothing Then Exit Sub

a+
 
Re : Macro : recherche

merci mromain

Pour mon info, si veux changer de colonne de resultat, c'est à dire ne pas obtenir le resultat en colonne B, mais en colonne C.
Quelle ligne je dois modifier?

celle ci
Code:
If Not r Is Nothing Then Target.Offset(0, 1) = r.Offset(0, 1)

merci d'avance
 
Dernière édition:
Re : Macro : recherche

re,

effectivement, c'est bien cette ligne
Target.Offset(x, y) "veut dire" qu'on se décale de x lignes et y colonnes (par rapport à Target).

donc si tu veux écrire à 2 colonnes de la cellule (colonne C), il faut écrire
Code:
If Not r Is Nothing Then Target.Offset(0, [COLOR=Red][B]2[/B][/COLOR]) = r.Offset(0, 1)
a+
 
- 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
15
Affichages
812
Réponses
5
Affichages
925
Réponses
4
Affichages
742
Réponses
8
Affichages
797
Réponses
7
Affichages
182
Retour