Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Supprimer un ID chiffre dans une URL

PAULINETB

XLDnaute Nouveau
Bonjour,

j'ai une série de redirection d'URL à traiter (environ 10 000 quand même) et je cherche à automatiser le travail sur Excel.

URL exemple : www.monsite.com/9997-385406-mon-produit.html que je dois transformer en : www.monsite.com/9997-mon-produit.html

> 9997 est l'ID du produit que je dois garder
> 385406 est l'ID déclinaison que je dois supprimer

Evidemment les ID produit et ID déclinaisons ne sont jamais identiques.

L'ID déclinaison est toujours après l'ID produit, séparé par un tiret (ex : 9997-385406)

Comment automatiser la supprimer de l'ID déclinaison à l'intérieur de mon URL.

La finalité est de gérer mes redirections web suite à une migration de site...

Je vous remercie grandement pour votre aide et votre pédagogie (je ne suis pas la reine des macros )

bien à vous,

Pauline

PS : Je joins un fichier EXCEL avec plusieurs exemples d'URL à nettoyer...
 

Pièces jointes

  • URL_ID_Declinaison_A_Nettoyer.xlsx
    9.5 KB · Affichages: 6

jurassic pork

XLDnaute Occasionnel
Hello,
en VBA on peut aussi utiliser les expressions régulières :
VB:
Sub Modif_URL_JP()
Dim Derlig&, i&
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
regex.pattern = "\-\d+" ' tiret suivi de chiffres (au moins 1)
Derlig = Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To Derlig
    Range("B" & i) = regex.Replace(Range("A" & i), "")
Next
End Sub
on remplace ce qui correspond à un tiret suivi de chiffres par rien

Ami calmant, J.P
 

job75

XLDnaute Barbatruc
Bonsoir à tous,

Exécutez :
VB:
Sub Sup_ID()
Dim ds$, tablo, i&, s, j%, x$
ds = Application.DecimalSeparator
With [A1].CurrentRegion.Resize(, 2)
    tablo = .Value
    For i = 2 To UBound(tablo)
        s = Split(tablo(i, 1), "-")
        For j = 0 To UBound(s)
            x = s(j)
            If IsNumeric(x) Then If InStr(x, ds) = 0 Then s(j) = "": Exit For
        Next j
        tablo(i, 2) = Replace(Join(s, "-"), "--", "-")
    Next i
    .Columns(2) = Application.Index(tablo, , 2)
End With
End Sub
Testée sur 10 000 lignes, la macro s'exécute en 5/100ème de seconde.

A+
 

Pièces jointes

  • Sup ID.xlsm
    16.8 KB · Affichages: 4

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…