XL 2016 [Resolu] Remplace texte par autre VBA

Florian53

XLDnaute Impliqué
Bonjour à tous,

Je voudrais réaliser une macro qui remplace un texte si une correspondance est trouvé par rapport à une BDD

- Dans la Feuil1 j'ai une liste que je voudrais comparer à une liste de la feuil2 si une correspondance est trouvée je souhaiterais qu'il remplace la valeur de la feuil1 par l'offset de 1 vers la droite de la feuil2.
Et si aucune correspondance on passe à la ligne suivante.

J'ai réalisé ce code, mais je n'arrive pas lui demander qu'il cherche dans tout le" tableau" sans lui spécifier par exemple "Tableau(i,1)".

VB:
Sub RechercheDansTableau()
Dim i As Integer

Derlign = Worksheets("Feuil1").Range("C" & Application.Rows.Count).End(xlUp).Row
Tableau = Worksheets("Feuil2").Range("D1:E53")

For i = 1 To Derlign
    If Worksheets("Feuil1").Cells(i, 5).Value = Tableau(1) Then
        Worksheets("Feuil1").Cells(i, 5).Value = Tableau(2)
    End If
Next

Merci à vous.
 

Pièces jointes

  • testrechercheremplace.xlsm
    14.8 KB · Affichages: 18

cp4

XLDnaute Barbatruc
comme ceci peut-être. Mais tu t'es gouré dans tes colonnes.
VB:
Sub RechercheDansTableau()
Dim i As Integer

Derlign = Worksheets("Feuil1").Range("C" & Application.Rows.Count).End(xlUp).Row
Tableau = Worksheets("Feuil2").Range("D1:E53")

For i = 1 To Derlign
    If Worksheets("Feuil1").Cells(i, 3).Value = Tableau(i, 1) Then
        Worksheets("Feuil1").Cells(i, 4).Value = Tableau(i, 2)
    End If
Next
End Sub
 

Florian53

XLDnaute Impliqué
Bonsoir et merci cp4,

Une solution à été trouvé par un membre du forum excel pratique qui fonctionne a merveille:

VB:
Sub RechercheDansTableau()
Dim i As Integer
Dim oRange As Excel.Range
Dim sValue As Variant
Derlign = Worksheets("Feuil1").Range("C" & Application.Rows.Count).End(xlUp).Row
tableau = Worksheets("Feuil2").Range("D1:E53")

For i = 1 To Derlign
    Set oRange = Worksheets("Feuil1").Cells(i, 3)
    sValue = ""
    On Error Resume Next
    sValue = WorksheetFunction.VLookup(oRange.Value, tableau, 2, False)
    On Error GoTo 0
    If Len(sValue) > 0 Then
        oRange.Value = sValue
    End If
Next
End Sub

Je cloture le sujet, encore merci à vous
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 724
Membres
110 552
dernier inscrit
jasson