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

Format telephone avec espace reel

  • Initiateur de la discussion Initiateur de la discussion malbae
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Certes mais le pb reste identique puisque ce n'est que visuel... en effet les espaces n'apparaissent pas dans la zone de formule...

Merci en tout cas de votre promptitude !

Paul
 
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
 
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

@+
 
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
 
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
 
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+
 
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.
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
905
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…