Format telephone avec espace reel

M

malbae

Guest
Bonjour,

j'ai une liste de telephones et je souhaiterais les convertir au format de type 00 00 00 00 00 avec des espaces réels et non pas seulement visuel (que l'on peut avoir avec la fonction format telephone)

Merci pour vos réponses

Paul
 
M

malbae

Guest
Marc merci

Important cela est ! car je souhaite exporter ces données sous une autre application
J'ai trouvé cette macro mais je n'arrive pas à l'appliquer sur toute la colonne...

Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 20/02/2006 par Paul
'
' Touche de raccourci du clavier: Ctrl+w
'

Range('Q2').Select
ActiveCell.FormulaR1C1 = '02 32 21 74 36'
Range('Q3').Select
End Sub

Merci encore

Paul
 

Tibo

XLDnaute Barbatruc
Bonsoir Malbae, Marc, le Forum,

Malbae, dans ton cas, il faut utiliser les fonctions GAUCHE, DROITE, STXT :

=GAUCHE(A1;2)&' '&STXT(A1;3;2)&' '&STXT(A1;5;2)&' '&STXT(A1;7;2)&' '&DROITE(A1;2)

Tu n'as dans ce cas plus à te soucier d'appliquer un format personnalisé.

Bonne soirée

@+
 

JeanMarie

XLDnaute Barbatruc
Bonsoir

Place ce code dans un module, puis sélectionne les cellules que tu veux affecter par l'action de la macro, puis lance l'excécution.

Code:
Sub Macro1()
Dim vCell As Range
   For Each vCell In Selection
      vCell = vCell.Text
   Next
End Sub

@+Jean-Marie
 

jp14

XLDnaute Barbatruc
Bonsoir

Ci dessous une autre solution.(le nb de carractère doit être pair)


Sub Macro1()
Dim lon, i2 As Integer
Dim a1, a As String
Dim vCell As Range
For Each vCell In Selection

lon = Len(vCell)
a = ''

' on rajoute un espace tous les 2 caractères
For i2 = 1 To lon Step 2
a1 = Mid(vCell, i2, 2)
a = a & a1 & ' '
Next i2
vCell = a
Next
End Sub
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir malbae, Marc, Tibo, JeanMarie et jp14 :)

Si malbae peut utiliser le format spécial n° de téléphone, c'est que la saisie est numérique.

Dans ce cas, la formule de Tibo ne convient malheureusement pas si le chiffre saisi commence par un '0', alors qu'elle fonctionne parfaitement si le format de cellule a été préalablement déclaré en texte.

Sinon, il faut savoir qu'il existe 3 manières d'aller chercher le contenu d'une cellule par les propriétés de cet objet :

[ul][li]Value : donne un variant dont la valeur est fonction de la saisie (num, date, heure, etc.)
[/li][li]Value2 : sert principalement pour les formats monétaires ou date. Personnellement, je m'en sers pour avoir la valeur numérique d'une date[/li][li]Text : qui contient la valeur d'une cellule (en fonction de son format) sous forme de texte.[/li][/ul]

Cela signifie que pour obtenir le texte d'une cellule déclarée en format n° de téléphone, il faut utiliser la propriété Text. Ainsi, la macro de JeanMarie devrait parfaitement convenir à malbae.

En utilisant vCell = vCell.Text, cela revient à écrire vCell.Value = vCell.Text (cette dernière renvoyant le texte de la cellule en fonction de son format).

Cela sous-entend que la fonction len(vCell) renverra un nombre impair si des chiffres ont été saisis et si les n° de téléphone commencent par un '0' comme en France.

Sur ce, je vous laisse car j'ai la v-Cell qui m'attend ;)

A+
 

jp14

XLDnaute Barbatruc
Bonjour

Suite aux explications de Charly, j'ai modifié ma macro pour tenir compte du fait que le nombre de chiffres sera le plus souvent impair pour un numéro français.
*******************************************
Dim numtel As String
For Each vCell In Selection
numtel = vcell
lon = Len(vCell)
If lon = 9 Then ' numéro français on doit rajouter 0 devant

numtel = '0' & vCell
lon = Len(numtel)
End If

a = ''

' on rajoute un espace tous les 2 caractères
For i2 = 1 To lon Step 2
a1 = Mid(numtel, i2, 2)

********************************************
Si dans la liste il existe des numéros internationnaux
Il faudrait mettre les espaces partir de la droite, en conservant l'indicatif du pays qui sauf erreur de ma part est sur deux chiffres.
 

jp14

XLDnaute Barbatruc
Bonjour

Ci joint un fichier avec une macro qui insère des espaces dans un nombre.

si longueur du nombre = 9 on rajoute 0 au début

si la longueur est différente de 9 et
si la longueur est :
paire la macro groupe les chiffres par 2 (XX XX

impaire on obtient X XX XX .... [file name=numtel.zip size=9317]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/numtel.zip[/file]
 

Pièces jointes

  • numtel.zip
    9.1 KB · Affichages: 95

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 351
Membres
103 526
dernier inscrit
HEC