Remplacer par....

Le
Denys
Bonjour à tous,

Petit problème à vous soumettre. Sur une feuille excel contenant plus
de 55,000 lignes, je dois remplacer dans la colonne B les noms de
produits en anglais par leur équivalent en français. Il y a plus de 50
produits.

Alors, je me demandais si je pouvais mettre en colonne S les noms en
anglais et en colonne U l'équivalent en français et avoir une macro
qui dirait simplement: pour chaque cellule entre B1:B55000, trouvez
l'équivalent dans la colonne S (où les noms sont en anglais) et
remplacez par la cellule correspondant dans la colonne U où les noms
sont en français

J'ai commencé avec ce qui suit, mais je faille quelque part:

Sub Fonds()
Set plg1 = ActiveSheet.Range("S2:S74")
Set plg2 = ActiveSheet.Range("U2:U74")
For Each C In Sheets("Sheet1").Range("B2:B55000")
If Not IsError(Application.Match(C, plg1, 0)) Then
Range("B2") = Application.Index(plg2, Application.Match(C, plg1, 0))
Else
Exit Sub
End If
Next
End Sub

Merci pour votre temps

Denys
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michel ou sam
Le #23567391
Bonjour,
il y a au moins une anomalie à la ligne 6
où tu fais référence à B2 alors que l'on traite C
Michel

"Denys"
Bonjour à tous,

Petit problème à vous soumettre. Sur une feuille excel contenant plus
de 55,000 lignes, je dois remplacer dans la colonne B les noms de
produits en anglais par leur équivalent en français. Il y a plus de 50
produits.

Alors, je me demandais si je pouvais mettre en colonne S les noms en
anglais et en colonne U l'équivalent en français et avoir une macro
qui dirait simplement: pour chaque cellule entre B1:B55000, trouvez
l'équivalent dans la colonne S (où les noms sont en anglais) et
remplacez par la cellule correspondant dans la colonne U où les noms
sont en français...

J'ai commencé avec ce qui suit, mais je faille quelque part:

Sub Fonds()
Set plg1 = ActiveSheet.Range("S2:S74")
Set plg2 = ActiveSheet.Range("U2:U74")
For Each C In Sheets("Sheet1").Range("B2:B55000")
If Not IsError(Application.Match(C, plg1, 0)) Then
Range("B2") = Application.Index(plg2, Application.Match(C, plg1, 0))
Else
Exit Sub
End If
Next
End Sub

Merci pour votre temps

Denys
LSteph
Le #23567451
Bonjour,

Sub Fonds()
Dim c As Range
With Application
.ScreenUpdating = False
For Each c In [B2:B55000].Cells
If Not IsError(.Match(c, [s2:s167], 0)) Then
c.Value = .Index([u2:u167], .Match(c, [s2:s167], 0))
End If
.StatusBar = "Execution de " & Format(c.Row, "00000") & "/55000"
Next
.ScreenUpdating = True
.StatusBar = False
End With
End Sub

'LSteph


On Jul 15, 3:06 pm, Denys
Bonjour à tous,

Petit problème à vous soumettre. Sur une feuille excel contenant plus
de 55,000 lignes, je dois remplacer dans la colonne B les noms de
produits en anglais par leur équivalent en français. Il y a plus de 5 0
produits.

Alors, je me demandais si je pouvais mettre en colonne S les noms en
anglais et en colonne U l'équivalent en français et avoir une macro
qui dirait simplement: pour chaque cellule entre B1:B55000, trouvez
l'équivalent dans la colonne S (où les noms sont en anglais) et
remplacez par la cellule correspondant dans la colonne U où les noms
sont en français...

J'ai commencé avec ce qui suit, mais je faille quelque part:

Sub Fonds()
Set plg1 = ActiveSheet.Range("S2:S74")
Set plg2 = ActiveSheet.Range("U2:U74")
For Each C In Sheets("Sheet1").Range("B2:B55000")
If Not IsError(Application.Match(C, plg1, 0)) Then
Range("B2") = Application.Index(plg2, Application.Match(C, plg1, 0))
Else
Exit Sub
End If
Next
End Sub

Merci pour votre temps

Denys
Denys
Le #23567481
Bonjour LSteph,

Wow !!! Merci infiniment, ça a fonctionné à la perfection !!!

Bonne journée

Denys
Publicité
Poster une réponse
Anonyme