Macro remplacement

Bonsoir à tous,

j'ai besoin de votre aide pour créer une macro qui permette, en un clic, de faire des remplacements.

Je m'explique :

En colonne D j'ai les valeurs à remplacer.

En colonne E j'ai le texte qui doit remplacer ma valeur

En colonne AB se trouve la colonne où ma macro va devoir agir

C'est à dire qu'en cliquant sur mon bouton macro, toute les valeurs de la colonne D qui se retrouvent dans la colonne AB vont se changer en ce qui est inscrit en colonne E.

dans la colonne AB, la valeur qui se trouve en D3 se change en E3, D4 se change en E4, D5 se change en E5 etc etc

Pour y voir plus clair, j'ai mis en colonne AD le résultat attendu après avoir lancé la macro.

Actuellement je dois faire ça manuellement, et sachant que des tableaux peuvent être très conséquent, j y passe un temps fou. D'où l’intérêt de faire une macro

J'espère que quelqu'un pourra m'apporter son aide

Par avance merci

Bonne soirée

Bonsoir,

Il fallait décoder ton intention...

Sub Commentaires()
    Dim d As Object, cmt, scd, k, i&, n&, j%, R$
    Set d = CreateObject("Scripting.Dictionary")
    With ActiveSheet
        n = .Range("E" & .Rows.Count).End(xlUp).Row - 2
        scd = .Range("D3").Resize(n, 2).Value
        n = .Range("AB" & .Rows.Count).End(xlUp).Row - 2
        cmt = .Range("AB3").Resize(n).Value
    End With
    For i = 1 To UBound(scd)
        k = CStr(scd(i, 1))
        d(k) = Replace(scd(i, 2), k, "")
    Next i
    For i = 1 To UBound(cmt)
        scd = Split(cmt(i, 1), "référence")
        For j = 0 To UBound(scd)
            If Val(scd(j)) > 0 Then
                k = CStr(Val(scd(j)))
                If d.exists(k) Then
                    scd(j) = " " & k & d(k) & LTrim(Replace(scd(j), k, ""))
                End If
            End If
        Next j
        cmt(i, 1) = Join(scd, "référence")
    Next i
    ActiveSheet.Range("AE3").Resize(n).Value = cmt
End Sub

Il faudra remplacer AE par AB dans la dernière ligne, mais attention si tu remplaces la valeur initiale de AB, il faudra éviter soigneusement d'exécuter une 2e fois la macro...

Cordialement.

Bonjour Mferrrand,

Toutes mes excuses pour les explications approximatives

Je te remercie pour le temps accordé.

J ai testé ton code est le résultat est top.

Parfaitement ce qui était attendu.

Un grand merci à toi

Bonne journée

Rechercher des sujets similaires à "macro remplacement"