XL 2016 [Resolu] Remplace texte par autre VBA

  • Initiateur de la discussion Initiateur de la discussion Florian53
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
427
Réponses
5
Affichages
703
Réponses
8
Affichages
647
Réponses
4
Affichages
221
Retour