Macro RECHERCHER-REMPLACER. [Résolu]

Messages postés
42
Date d'inscription
lundi 27 mai 2019
Statut
Membre
Dernière intervention
30 juillet 2019
-
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 !




Afficher la suite 

1 réponse

Messages postés
8306
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 août 2019
412
0
Merci
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
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
8306
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 août 2019
-
Aucune erreur mais ça ne marche pas ...
J'ai coché la référence "microsoft scripting runtime".
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
8306
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 août 2019
412 > Mirguy23
Messages postés
42
Date d'inscription
lundi 27 mai 2019
Statut
Membre
Dernière intervention
30 juillet 2019
-
message d'erreur?
est-il possible qu'il y ait plusieurs fois la même valeur en colonne B de la feuille 2? que faut-il faire dans ce cas-là?
si il faut tenir compte de la première occurrence:
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
        If Not rech.Exists(rg.Value) Then
            Call rech.Add(rg.Value, rg.Offset(0, -1).Value)
        End If
    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
Mirguy23
Messages postés
42
Date d'inscription
lundi 27 mai 2019
Statut
Membre
Dernière intervention
30 juillet 2019
-
Rebonjour yg_be

Merci pour votre aide :) ça fonctionne et ça m'a permis de faire d'autres choses encore plus.
Encore merci beaucoup à vous yg_be
yg_be
Messages postés
8306
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 août 2019
412 > Mirguy23
Messages postés
42
Date d'inscription
lundi 27 mai 2019
Statut
Membre
Dernière intervention
30 juillet 2019
-
parfait! peux-tu alors marquer le sujet comme résolu, via la roue dentée à droite du titre?
Commenter la réponse de yg_be