Suppression automatique des chiffres

Bonjour,

Je sollicite votre assistance sur un sujet. En effet, j'ai un fichier client sur excel qui reprend les noms, gestionnaire et numéros de téléphone de tous les clients que je souhaiterai exporter sur une plateforme pour l'envoi en masse des sms pro.

Seulement, les numéros de téléphone tel saisi ne permettra l'envoi de ses SMS. Je souhaite alors travailler ces numéros en :

  • Supprimant les espace entre chaque nombre
  • Supprimant les 0 au début de chaque numéro
  • Supprimant le préfixe "2420" pour les numéros qui commencent ainsi

Merci d'avance pour votre retour.

Je joins mon fichier ici:

Bonjour

Formule en K2, incrémentée vers le bas

=SUBSTITUE(SUBSTITUE(J298;"2420";"");CAR(32);"")*1

Cordialement

Bonjour Lenak, Amadéus,

je te retourne ton fichier modifié :

Ctrl e ➯ travail effectué !


Alt F11 pour voir le code VBA, puis revenir sur Excel

si besoin, tu peux demander une adaptation.

merci de me dire si ça te convient.

dhany

Bonjour Dhany, Amadéus,

Tout d'abord merci beaucoup pour vos retours.

J'ai utilisé la formule d'Amadéus et ça marché.

Par contre en téléchargeant le fichier de Dhany, je n'ai vu aucune différence avec celui que j'avais envoyé.

Merci

@Lenak

tu a écrit :

Par contre en téléchargeant le fichier de Dhany, je n'ai vu aucune différence avec celui que j'avais envoyé.

j'avais bien écrit qu'il faut faire Ctrl e ; tu aurais vu ceci en colonne J (extrait) :

screen

(et ça prend moins de 5 secondes pour toute la colonne de 7 050 n° de téléphone)

voici le code VBA correspondant :

Option Explicit

Sub NormTél()
  Dim Tbl, dlig&, chn$, lng As Byte, i&
  dlig = Cells(Rows.Count, 10).End(xlUp).Row
  If dlig = 1 Then Exit Sub
  Tbl = Range("J1:J" & dlig)
  For i = 2 To dlig
    chn = Tbl(i, 1)
    If chn <> "" Then
      chn = Replace$(chn, " ", ""): lng = Len(chn)
      Do While Left$(chn, 1) = "0" And lng > 1
        lng = lng - 1: chn = Right$(chn, lng)
      Loop
      If Left$(chn, 4) = "2420" Then chn = Right$(chn, lng - 4)
      Tbl(i, 1) = chn
    End If
  Next i
  Application.ScreenUpdating = 0
  Range("J1:J" & dlig) = Tbl
End Sub

note bien qu'il fait tout ce que tu as demandé :

* enlever tous les espaces

* enlever tous les zéros du début

* enlever le préfixe "2420"

dhany

@Amadéus

sauf erreur de ma part, ta formule supprime tous les "2420" : pas seulement en préfixe (au début) mais aussi au milieu !

donc un n° de téléphone comme "33672420461" devient "3367461" !

dhany

Bonjour Lenak, Amadeus, dhany,

Voilà la formule d'Amadeus revue pour tenir compte de la remarque de dhany :

=SUBSTITUE(SI(GAUCHE(J2;4)="2420";DROITE(J2;NBCAR(J2)-4);J2);CAR(32);"")*1

ah oui, là c'est mieux !

Bonjour,

Bonjour Dhany,

Comment traites-tu les points dans les numéros de téléphone, et le + en début de chaîne ?

Cdlt.

Bonsoir Jean-Eric,

même si le demandeur Lenak ne l'avait pas mentionné dans son énoncé, tu as raison : y'a quelques numéros de téléphone qui commencent par le signe « + » ou qui comportent un point séparateur au lieu de l'espace.

nouvelle version du fichier :


d'où cette copie d'écran (qui démontrera à Lenak que mon code VBA ne fait pas rien ! ) :

screen

au cas où Lenak ne trouverait pas mon code VBA, le voici :

Option Explicit

Sub NormTél()
  Dim Tbl, dlig&, chn$, lng As Byte, i&
  dlig = Cells(Rows.Count, 10).End(xlUp).Row: If dlig = 1 Then Exit Sub
  Tbl = Range("J1:J" & dlig)
  For i = 2 To dlig
    chn = Tbl(i, 1)
    If chn <> "" Then
      If Left$(chn, 1) = "+" Then chn = Right$(chn, Len(chn) - 1)
      chn = Replace$(Replace$(chn, " ", ""), ".", ""): lng = Len(chn)
      Do While Left$(chn, 1) = "0" And lng > 1
        lng = lng - 1: chn = Right$(chn, lng)
      Loop
      If Left$(chn, 4) = "2420" Then chn = Right$(chn, lng - 4)
      Tbl(i, 1) = chn
    End If
  Next i
  Application.ScreenUpdating = 0: Range("J1:J" & dlig) = Tbl
End Sub

@Lenak

c'est cool, hein ? au pire des cas, t'as juste à faire un copier/coller de la macro dans ton vrai classeur ! mais attention : si c'est un .xlsx tu dois d'abord le convertir en .xlsm ; de retour sur Excel, tu lances la macro via Alt F8, ou via un raccourci clavier que tu ajoutes, ou via un bouton de commande (à ajouter).

dhany

Rechercher des sujets similaires à "suppression automatique chiffres"