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

Cherche et remplace valeur

nakadon

XLDnaute Occasionnel
Bonjour,
Pourriez-vous m'aider svp. Je souhaite avoir une macro qui recherche puis remplace les valeurs dans la colonne "référence" du fichier2 par leur "Libellé" qui existe dans le fichier1 (grâce un bouton macro à placer dans la feuil1 du fichier1). Il s'agit de comparer les valeurs entre le fichier1 et le fichier2 ci-dessous. Si la valeur dans la colonne "référence" du fichier2 existe dans la colonne "code" du fichier1, elle est remplacée par la valeur "libellé" correspondante du fichier1, sinon ne rien faire.
D'avance merci pour votre aide.
 

Pièces jointes

  • Fichier1.xls
    13.5 KB · Affichages: 21
  • Fichier2.xls
    13.5 KB · Affichages: 15
  • Fichier1.xls
    13.5 KB · Affichages: 20
  • Fichier2.xls
    13.5 KB · Affichages: 26
  • Fichier1.xls
    13.5 KB · Affichages: 17
  • Fichier2.xls
    13.5 KB · Affichages: 20

pierrejean

XLDnaute Barbatruc
Re : Cherche et remplace valeur

Bonjour nakadon

Vois si cela te convient
 

Pièces jointes

  • Fichier1.xls
    37.5 KB · Affichages: 15
  • Fichier1.xls
    37.5 KB · Affichages: 17
  • Fichier1.xls
    37.5 KB · Affichages: 25

nakadon

XLDnaute Occasionnel
Re : Cherche et remplace valeur

Merci PierreJean. L'idéal serait de supprimer les valeurs existantes dans la colonne A du fichier2 et de les remplacer par celle de "libellé"du fichier1. Mais c'est aussi bien comme ça. Merci.
 

pierrejean

XLDnaute Barbatruc
Re : Cherche et remplace valeur

Re

Version pour remplacement

Code:
Sub report()
tablo = Sheets("Feuil2").Range("A2:B" & Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row)
tablo1 = Workbooks("Fichier2.xls").Sheets("Feuil1").Range("A2:A" & Workbooks("Fichier2.xls").Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
  For m = LBound(tablo1, 1) To UBound(tablo1, 1)
    If tablo(n, 1) = tablo1(m, 1) Then
      tablo1(m, 1) = tablo(n, 2)
    End If
  Next
Next
 Workbooks("Fichier2.xls").Sheets("Feuil1").Range("A2").Resize(UBound(tablo1, 1), UBound(tablo1, 2)) = tablo1
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…