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

Macro : Recherche

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'essaye de faire une rechercheV sans utiliser la fonction recherchev, mais plutôt une macro.

Pour cela, j'ai la macro suivante, mais je n'arrive pas à obtenir le resultat à droite de la valeur recherchée.

Je vous remercie de votre aide


Code:
Sub Test()
Set d = Worksheets("Data").Range("b2")
For Each c In Worksheets("Resultat").Range("b2:b10")
If c.Value = d.Value Then d.Offset(0, 1).Copy c
Set d = d.Offset(1, 0)
Next c
End Sub
 

Pièces jointes

Re : Macro : Recherche

Bonsoir roidurif,

Regardes si celà te convient.

Code:
Sub TI()

Set d = Worksheets("Data").Range("b2")
For Each c In Worksheets("Resultat").Range("b2:b10")
If c.Value = d Then Sheet1.Range(d.Address).Offset(0, 1).Copy Sheet2.Range(c.Address).Offset(0, 1)
Set d = d.Offset(1, 0)
Next c

End Sub

Cordialement.
 
Re : Macro : Recherche

Merci Papou-net,

Cela me convient presque, seulement, je me retrouve avec 2 problématiques :
Lorsque la valeur recherchée est vide, il copie la celulle vide trouvée quand même.
Lorsque la valeur recherchée est en double (Car il ne fait qu'une boucle dans l'onglet "DATA"), il ne copie pas la 2eme valeur trouvée .

Comment faire pour y remedier à tout ca ?

ci-joint fichier d'exemple

Merci de l'aide



Code:
Sub Test()

Set d = Worksheets("Data").Range("b2")
For Each c In Worksheets("Resultat").Range("b2:b10")
If c.Value = d Then Sheet1.Range(d.Address).Offset(0, 1).Copy Sheet2.Range(c.Address).Offset(0, 1)
Set d = d.Offset(1, 0)
Next c

End Sub

Cordialement
 

Pièces jointes

Re : Macro : Recherche

Lorsque la valeur recherchée est vide, il copie la celulle vide trouvée quand même.
Lorsque la valeur recherchée est en double (Car il ne fait qu'une boucle dans l'onglet "DATA"), il ne copie pas la 2eme valeur trouvée .


Bonjour roidurif,

N'étant pas chez moi en ce moment, et n'ayant pas Excel sur cet ordi, je te propose de modifier ton code pour répondre au premier point :

Code:
Sub Test()

Set d = Worksheets("Data").Range("b2")
For Each c In Worksheets("Resultat").Range("b2:b10")
If c.Value = d  And Not c.Value = "" Then
  Sheet1.Range(d.Address).Offset(0, 1).Copy Sheet2.Range(c.Address).Offset(0, 1)
  Set d = d.Offset(1, 0)
End If
Next c

End Sub

Quand au deuxième point que tu signales, je suis surpris car il me semble que lors de l'essai sur mon poste, les valeurs en double s'affichaient.

Je vérifierai lorsque je serai rentré.

En attendant, cordiales salutations.
 
Re : Macro : Recherche

Bonjour roidurif,

Je suis rentré et j'ai réexaminé le problème.

Essaies ce nouveau code et dis-moi si c'est ce que tu attendais ?

Cordialement.

Code:
Sub Test()
For Each d In Sheet1.Range("B2:B10")
  For Each c In Worksheets("Resultat").Range("b2:b10")
  If c.Value = d.Value And Not c.Value = "" Then
    Sheet1.Range(d.Address).Offset(0, 1).Copy Sheet2.Range(c.Address).Offset(0, 1)
  End If
  Next c
Next d
End Sub
 
- 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
4
Affichages
735
Réponses
5
Affichages
914
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…