BOUTON remplacer valeurs d'une colonne par corespondance

Bonjour à tous,

J’aimerai un code qui permettrai remplacer les valeurs de la colonne A par celle de la colonne C (Tableau correspondance2) en se basant uniquement sur Les 05 premiers caractères le colonne A ; s’il n’a pas de correspondance, se baser sur les 02 premiers caractères de la colonne A.

BREF

j'aimerai, avoir un bouton '' conversion" par exemple qui remplacera directement les valeurs de la feuille données par celle des correspondances,d’où un code en VBA.

Merci.

16test-corespond.xlsx (11.03 Ko)

Bonjour Atitila,

à tester voir si cela te conviens.

Cordialement.

26test-corespond.xlsm (18.06 Ko)

Bonjour BIGDADDY154,

c'est parfait.

merci.

BONJOUR BIGDADDY154,

quand j'essaye de comprendre ton code,

j'arrive pas à distinguer la colonne de la feuille ''Données" de celle de la feuille 3.

Sub remplacer()

drligne = Range("a" & Rows.Count).End(xlUp).Row

With Sheets(3)

drligne_corres = .Range("a" & Rows.Count).End(xlUp).Row

For i = 2 To drligne

valeur = Left(Range("a" & i), 5)

For Z = 2 To drligne_corres

If .Range("a" & Z) = valeur Then

Range("a" & i) = .Range("b" & Z)

Z = drligne_corres

Else

If Z = drligne_corres Then

valeur = Left(Range("a" & i), 2)

For x = 2 To drligne_corres

If .Range("a" & x) = valeur Then Range("a" & i) = .Range("b" & x)

Next x

End If

End If

Next Z

Next i

End With

Range("a:a").EntireColumn.AutoFit

End Sub

Re,

Tout les range commençant par . comme

drligne_corres = .Range("a" & Rows.Count).End(xlUp).Row

sont relatifs à la feuille 3 les autres comme

drligne = Range("a" & Rows.Count).End(xlUp).Row

font partis de la feuille Données.

Cordialement.

ok,

merci.

J'aimerai réadapter ton code a celui ci.

Private Sub CommandButton2_Click()

Dim ws, ws2 As Worksheet

Dim objList As ListObject, objList2 As ListObject, objList3 As ListObject, objList4 As ListObject

Dim Cell As Range

Dim Result As Variant

Application.ScreenUpdating = False

Set ws = Worksheets("Données"): Set ws2 = Worksheets("Feuil3")

Set objList = ws.ListObjects(1): Set objList2 = ws2.ListObjects(1)

With ws

For Each Cell In objList.ListColumns(08).DataBodyRange

Result = Application.VLookup(Cell.Value, objList2.DataBodyRange, 2, False)

If IsError(Result) Then

Cell.Value = "Non Defini"

Else

Cell.Value = Result

End If

Next Cell

End With

Set objList = Nothing: Set objList2 = Nothing

Set ws2 = Nothing: Set ws = Nothing

End Sub

Bonsoir,

essaye ce fichier voir si ça peut te convenir.

Fonctionnement : modifie tout les codes présents dans la colonne H de chaque feuille sauf pour la "feuil3" avec leur correspondance.

Ps : je t'ai commenté le code si besoin de modifications.

Cordialement.

Rechercher des sujets similaires à "bouton remplacer valeurs colonne corespondance"