VBA_ Rechercher une valeur dans une matrice et copier coller la valeur

Bonjour le forum ,

Après maintes recherches et tentatives je bloque sur un bout de macro. Je m'adresse à vous pour savoir si quelqu'un aurait une piste pour m'aider :)

Mon problème est le suivant :
Sur ma feuille 1 , en colonne A "REPERTOIRE" j'ai des références , je souhaite retrouver cette référence en feuille 2 qui se situe sur la plage de la colonne "B à E ", puis copier la valeur correspondante qui se situe en colonne A " DOSSIER", et coller cette valeur en feuille 1 Colonne B "Correspondance DOSSIER"

J'ai essayé d'écrire plusieurs macro, pour ma dernière tentative j'ai écrit quelque chose en VBA avec la formule INDEXEQUIV mais je n'ai pas l'impression que cela soit pertinent.

J'ai mis le fichier en pièce jointe peut être que ça pourra aider.

Merci pour le temps que vous avez pris pour me lire !

Bonne journée à vous tous !

A.

Bonjour,

Essaie :

Sub Recherche2()
  Dim C As Range, Plage As Range, X As Range
  With Sheets("Sheet1")
    Set Plage = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
  End With
  With Sheets("Sheet2")
    For Each C In Plage
      Set X = .[B:E].Find(C.Value, , , xlWhole)
      If Not X Is Nothing Then
        .Cells(X.Row, 1) = X.Value
      End If
    Next C
  End With
End Sub

Daniel

Bonjour Daniel ,

Merci pour ton retour, j'ai copié la macro dans mon fichier mais rien ne se passe lorsque je la lance..pense tu que j'oublie de faire une manipulation ?

Sub Recherche2()
  Dim C As Range, Plage As Range, X As Range
  With Sheets("Sheet1")
    Set Plage = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
  End With
  With Sheets("Sheet2")
    For Each C In Plage
      Set X = .[B:E].Find(C.Value, , , xlWhole)
      If Not X Is Nothing Then
        .Cells(X.Row, 1) = X.Value
      End If
    Next C
  End With
End Sub

Est-ce que je me suis trompé ? Le résultat s'inscrit en colonne A, sheet2.

Daniel

Oups :

Sub Recherche2()
  Dim C As Range, Plage As Range, X As Range
  With Sheets("Sheet1")
    Set Plage = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
  End With
  With Sheets("Sheet2")
    For Each C In Plage
      Set X = .[B:E].Find(C.Value, , , xlWhole)
      If Not X Is Nothing Then
        C.Offset(, 1) = X.Value
      End If
    Next C
  End With
End Sub

Daniel

Oups oups,

Sub Recherche2()
  Dim C As Range, Plage As Range, X As Range
  With Sheets("Sheet1")
    Set Plage = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
  End With
  With Sheets("Sheet2")
    For Each C In Plage
      Set X = .[B:E].Find(C.Value, , , xlWhole)
      If Not X Is Nothing Then
        C.Offset(, 1) = .Cells(X.Row, 1)
      End If
    Next C
  End With
End Sub

Désolé.

C'est génial ça fonctionne :)

Merci beaucoup tu es mon sauveur de la journée ! :D

Rechercher des sujets similaires à "vba rechercher valeur matrice copier coller"