Petit probl=E8me =E0 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 =E9quivalent en fran=E7ais. 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'=E9quivalent en fran=E7ais et avoir une macro
qui dirait simplement: pour chaque cellule entre B1:B55000, trouvez
l'=E9quivalent dans la colonne S (o=F9 les noms sont en anglais) et
remplacez par la cellule correspondant dans la colonne U o=F9 les noms
sont en fran=E7ais...
J'ai commenc=E9 avec ce qui suit, mais je faille quelque part:
Sub Fonds()
Set plg1 =3D ActiveSheet.Range("S2:S74")
Set plg2 =3D ActiveSheet.Range("U2:U74")
For Each C In Sheets("Sheet1").Range("B2:B55000")
If Not IsError(Application.Match(C, plg1, 0)) Then
Range("B2") =3D Application.Index(plg2, Application.Match(C, plg1, 0))
Else
Exit Sub
End If
Next
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michel ou sam
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" a écrit dans le message de news:
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
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" <denys.perreault@rbc.com> a écrit dans le message de news:
df0e7d1a-3e79-4cb3-9dc8-9f16e9e55387@k27g2000yqn.googlegroups.com...
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
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" a écrit dans le message de news:
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
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 wrote:
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
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 <denys.perrea...@rbc.com> wrote:
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
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 wrote:
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
Bonjour LSteph,
Wow !!! Merci infiniment, ça a fonctionné à la perfection !!!
Bonne journée
Denys
Bonjour LSteph,
Wow !!! Merci infiniment, ça a fonctionné à la perfection !!!