Macro RECHERCHER-REMPLACER.

Résolu/Fermé
Mirguy23 Messages postés 42 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 30 juillet 2019 - Modifié le 26 juil. 2019 à 10:26
yg_be Messages postés 22788 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 mai 2024 - 30 juil. 2019 à 11:04
Bonjour,

Je coince un peu sur mon code ... J'ai visualisé plusieurs fichiers mais toujours des difficultés ...

Je cherche sous excel à avoir une macro me permettant de faire un remplacer-rechercher automatiquement afin de me simplifier la tâche.

Exemple:

Si PC802179-00 colonne "B" feuil1 est égal à la même valeur PC802179-00 colonne "B" feuil2 alors remplacer toute les cellules de la colonne "B" (feuil1) ayant la valeur PC802179-00 par RX134537-01 colonne "A" sur toute la feuil1.

Je vous ai joint les images pour plus de compréhension.

Quelqu'un peut me proposer un code afin que je me lance svp?



Merci de votre gentillesse !




1 réponse

yg_be Messages postés 22788 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 mai 2024 1 481
26 juil. 2019 à 11:01
bonjour, suggestion:
Sub g()
Dim f1 As Worksheet, f2 As Worksheet, rg As Range
Dim rech As Scripting.Dictionary
Set rech = New Scripting.Dictionary
Set f1 = ThisWorkbook.Worksheets("F1")
Set f2 = ThisWorkbook.Worksheets("F2")
For Each rg In Intersect(f2.Columns(2), f2.UsedRange)
    If rg.Value <> "" Then
        Call rech.Add(rg.Value, rg.Offset(0, -1).Value)
    End If
Next rg
For Each rg In Intersect(f1.Columns(2), f1.UsedRange)
    If rech.Exists(rg.Value) Then
        rg.Value = rech.Item(rg.Value)
    End If
Next rg
End Sub
0
Mirguy23 Messages postés 42 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 30 juillet 2019
26 juil. 2019 à 11:20
J'ai testé mais ça me donne une erreur de compilation ...
0
yg_be Messages postés 22788 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 mai 2024 1 481 > Mirguy23 Messages postés 42 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 30 juillet 2019
26 juil. 2019 à 11:33
quelle erreur, sur quelle ligne?
0
Mirguy23 Messages postés 42 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 30 juillet 2019
26 juil. 2019 à 11:46
Erreur de compilation
Type défini par utilisateur non défini


Private Sub CommandButton1_Click()
Dim Feui11 As Worksheet, Feui12 As Worksheet, rg As Range
Dim rech As Scripting.Dictionary
Set rech = New Scripting.Dictionary
Set Feui11 = ThisWorkbook.Worksheets("Feui11")
Set Feui12 = ThisWorkbook.Worksheets("Feuil2")
For Each rg In Intersect(Feui12.Columns(2), Feui12.UsedRange)
If rg.Value <> "" Then
Call rech.Add(rg.Value, rg.Offset(0, -1).Value)
End If
Next rg
For Each rg In Intersect(Feui11.Columns(2), Feui11.UsedRange)
If rech.Exists(rg.Value) Then
rg.Value = rech.Item(rg.Value)
End If
Next rg
End Sub
0
yg_be Messages postés 22788 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 mai 2024 1 481 > Mirguy23 Messages postés 42 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 30 juillet 2019
26 juil. 2019 à 11:57
Il faut ajouter "microsoft scripting runtime" dans les références du projet.
0
Mirguy23 Messages postés 42 Date d'inscription lundi 27 mai 2019 Statut Membre Dernière intervention 30 juillet 2019 > yg_be Messages postés 22788 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 mai 2024
26 juil. 2019 à 12:20
Aucune erreur mais ça ne marche pas ...
J'ai coché la référence "microsoft scripting runtime".
0