Vérifier que le premier caractère d'une chaine de caractère est 0 dans ce cas le supprimer
11 réponses
Bear76
Bonsoir à toute la communauté,
Je suis amener à importer dans un classeur *.xlsx des données provenant
d'une base de données en ligne.
J'ai problème concernant le traitement des numéros de téléphone. Effet
les utilisateurs n'ont pas saisi de la même façon ces numéros. On y
retrouve des points, des espaces, etc.
Je recherche une instruction en vba dont l'objet serait de vérifier la
présence d'un zéro en début de chaine dans chaque cellule d'une plage
désignée et si zéro il y avait, le supprimer.
For Each Cells In Sheets(1).Range("A2:C700")
if Cells Like "0 *" Then ????
Next
Ce que je ne sais pas quel est le nombre minimal de chiffres que peuvent avoir tes numéros de téléphone ainsi que le nombre maximal de chiffres. Entre ces 2 nombres, est-ce que tous les nombres sont possibles ?
'--------------------------------------- Sub test() Dim Arr(), C As Range
With Sheets(1).Range("A2:C700") .NumberFormat = "@" For Each elt In Arr .Cells.Replace elt, "" Next .NumberFormat = "##"" ""##"" ""00"" ""00"" ""00"" ""00"
For Each C In .Cells Select Case Len(C) Case 7, 9, 11 C.Value = "0" & C.Value End Select Next End With End Sub '---------------------------------------
"Bear76" a écrit dans le message de groupe de discussion : michdenis avait énoncé :
Et toi, après traitement, quel format de numéro de téléphone désires-tu avoir ?
"Bear76" a écrit dans le message de groupe de discussion : michdenis a écrit :
Bonjour,
Donne quelques exemples de quelques numéros de téléphone et dis-nous le format que tu voudrais obtenir.
N.B- Les numéros de téléphone peuvent être pris au hasard. Je ne m'intéresse qu'au format que tu décris.
"Bear76" a écrit dans le message de groupe de discussion : Bonsoir à toute la communauté,
Je suis amener à importer dans un classeur *.xlsx des données provenant d'une base de données en ligne. J'ai problème concernant le traitement des numéros de téléphone. Effet les utilisateurs n'ont pas saisi de la même façon ces numéros. On y retrouve des points, des espaces, etc. Je recherche une instruction en vba dont l'objet serait de vérifier la présence d'un zéro en début de chaine dans chaque cellule d'une plage désignée et si zéro il y avait, le supprimer.
For Each Cells In Sheets(1).Range("A2:C700") if Cells Like "0 *" Then ???? Next
Merci d'avance
Bonsoir, Voici quelques éléments 123456789 (format Standard)
0123 45 67 89 (format Standard) les espaces ont été saisis par l'utilisateur
01.23.45.67.89 (format Standard) les points ont été saisis par l'utilisateur
123 456 789 (format Nombre) Aucun espace saisi
0123456789 - 456789 (format Standard) Là, l'utilisateur a saisi le 1er n° complètement et le second les 6 derniers chiffres
4,91707E+11 (format Standard) Là l'utilisateur à n° à 12 chiffres
Pour les 4 premiers cas, j'ai utilisé :
Dim Cells As Range For Each Cells In Sheets(1).Range("A2:C200") Cells.Value = Application.Substitute(Cells.Value, " ", "") Next Cells For Each Cells In Sheets(1).Range("A2:C200") Cells.Value = Application.Substitute(Cells.Value, ".", "") Next Cells
Pour traiter le n° qui commence par zéro, j'ai fait ça, mais j'ai une erreur 400 For Each Cells In Sheets(1).Range("A2:C200") If Left(Range(Cells), 1) = "0" Then Range(Cells) = "" & Mid(Range(Cells), 1, 9 ^ 9) Next Cells
Merci d'avance
Bonsoir, Je pense, car non spécialiste que le format texte serait le plus approprié pour avoir 01 23 45 67 89 avec Sheets(1).Range("A2:C200").Select Selection.NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##" Cordialement
Bonjour, 95% des n° importés sont correctement saisis et ils ont une longueur de 9 caractères. Et tous ces n° sont des n° d'appel France. Grâce à vous on peut traiter automatiquement le formatage de tous les n° de téléphone. Merci beaucoup.
michdenis a formulé la demande :
Essaie quelque chose comme ceci :
Ce que je ne sais pas quel est le nombre minimal de chiffres
que peuvent avoir tes numéros de téléphone ainsi que le nombre
maximal de chiffres. Entre ces 2 nombres, est-ce que tous les
nombres sont possibles ?
'---------------------------------------
Sub test()
Dim Arr(), C As Range
With Sheets(1).Range("A2:C700")
.NumberFormat = "@"
For Each elt In Arr
.Cells.Replace elt, ""
Next
.NumberFormat = "##"" ""##"" ""00"" ""00"" ""00"" ""00"
For Each C In .Cells
Select Case Len(C)
Case 7, 9, 11
C.Value = "0" & C.Value
End Select
Next
End With
End Sub
'---------------------------------------
"Bear76" <nospam_bear76@aol.com> a écrit dans le message de groupe de
discussion : mn.50157da389d7a66e.92796@aol.com...
michdenis avait énoncé :
Et toi, après traitement, quel format de numéro de téléphone désires-tu
avoir ?
"Bear76" <nospam_bear76@aol.com> a écrit dans le message de groupe de
discussion : mn.50037da392c4a03f.92796@aol.com...
michdenis a écrit :
Bonjour,
Donne quelques exemples de quelques numéros de téléphone
et dis-nous le format que tu voudrais obtenir.
N.B- Les numéros de téléphone peuvent être pris au hasard.
Je ne m'intéresse qu'au format que tu décris.
"Bear76" <nospam_bear76@aol.com> a écrit dans le message de groupe de
discussion : mn.4d617da38a21e6ff.92796@aol.com...
Bonsoir à toute la communauté,
Je suis amener à importer dans un classeur *.xlsx des données provenant
d'une base de données en ligne.
J'ai problème concernant le traitement des numéros de téléphone. Effet
les utilisateurs n'ont pas saisi de la même façon ces numéros. On y
retrouve des points, des espaces, etc.
Je recherche une instruction en vba dont l'objet serait de vérifier la
présence d'un zéro en début de chaine dans chaque cellule d'une plage
désignée et si zéro il y avait, le supprimer.
For Each Cells In Sheets(1).Range("A2:C700")
if Cells Like "0 *" Then ????
Next
Merci d'avance
Bonsoir,
Voici quelques éléments
123456789 (format Standard)
0123 45 67 89 (format Standard)
les espaces ont été saisis par l'utilisateur
01.23.45.67.89 (format Standard)
les points ont été saisis par l'utilisateur
123 456 789 (format Nombre)
Aucun espace saisi
0123456789 - 456789 (format Standard)
Là, l'utilisateur a saisi le 1er n° complètement et le second les 6
derniers chiffres
4,91707E+11 (format Standard)
Là l'utilisateur à n° à 12 chiffres
Pour les 4 premiers cas, j'ai utilisé :
Dim Cells As Range
For Each Cells In Sheets(1).Range("A2:C200")
Cells.Value = Application.Substitute(Cells.Value, " ", "")
Next Cells
For Each Cells In Sheets(1).Range("A2:C200")
Cells.Value = Application.Substitute(Cells.Value, ".", "")
Next Cells
Pour traiter le n° qui commence par zéro, j'ai fait ça, mais j'ai une
erreur 400
For Each Cells In Sheets(1).Range("A2:C200")
If Left(Range(Cells), 1) = "0" Then Range(Cells) = "" &
Mid(Range(Cells), 1, 9 ^ 9)
Next Cells
Merci d'avance
Bonsoir,
Je pense, car non spécialiste que le format texte serait le plus
approprié pour avoir 01 23 45 67 89 avec
Sheets(1).Range("A2:C200").Select
Selection.NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##"
Cordialement
Bonjour,
95% des n° importés sont correctement saisis et ils ont une longueur de
9 caractères. Et tous ces n° sont des n° d'appel France.
Grâce à vous on peut traiter automatiquement le formatage de tous les
n° de téléphone.
Merci beaucoup.
Ce que je ne sais pas quel est le nombre minimal de chiffres que peuvent avoir tes numéros de téléphone ainsi que le nombre maximal de chiffres. Entre ces 2 nombres, est-ce que tous les nombres sont possibles ?
'--------------------------------------- Sub test() Dim Arr(), C As Range
With Sheets(1).Range("A2:C700") .NumberFormat = "@" For Each elt In Arr .Cells.Replace elt, "" Next .NumberFormat = "##"" ""##"" ""00"" ""00"" ""00"" ""00"
For Each C In .Cells Select Case Len(C) Case 7, 9, 11 C.Value = "0" & C.Value End Select Next End With End Sub '---------------------------------------
"Bear76" a écrit dans le message de groupe de discussion : michdenis avait énoncé :
Et toi, après traitement, quel format de numéro de téléphone désires-tu avoir ?
"Bear76" a écrit dans le message de groupe de discussion : michdenis a écrit :
Bonjour,
Donne quelques exemples de quelques numéros de téléphone et dis-nous le format que tu voudrais obtenir.
N.B- Les numéros de téléphone peuvent être pris au hasard. Je ne m'intéresse qu'au format que tu décris.
"Bear76" a écrit dans le message de groupe de discussion : Bonsoir à toute la communauté,
Je suis amener à importer dans un classeur *.xlsx des données provenant d'une base de données en ligne. J'ai problème concernant le traitement des numéros de téléphone. Effet les utilisateurs n'ont pas saisi de la même façon ces numéros. On y retrouve des points, des espaces, etc. Je recherche une instruction en vba dont l'objet serait de vérifier la présence d'un zéro en début de chaine dans chaque cellule d'une plage désignée et si zéro il y avait, le supprimer.
For Each Cells In Sheets(1).Range("A2:C700") if Cells Like "0 *" Then ???? Next
Merci d'avance
Bonsoir, Voici quelques éléments 123456789 (format Standard)
0123 45 67 89 (format Standard) les espaces ont été saisis par l'utilisateur
01.23.45.67.89 (format Standard) les points ont été saisis par l'utilisateur
123 456 789 (format Nombre) Aucun espace saisi
0123456789 - 456789 (format Standard) Là, l'utilisateur a saisi le 1er n° complètement et le second les 6 derniers chiffres
4,91707E+11 (format Standard) Là l'utilisateur à n° à 12 chiffres
Pour les 4 premiers cas, j'ai utilisé :
Dim Cells As Range For Each Cells In Sheets(1).Range("A2:C200") Cells.Value = Application.Substitute(Cells.Value, " ", "") Next Cells For Each Cells In Sheets(1).Range("A2:C200") Cells.Value = Application.Substitute(Cells.Value, ".", "") Next Cells
Pour traiter le n° qui commence par zéro, j'ai fait ça, mais j'ai une erreur 400 For Each Cells In Sheets(1).Range("A2:C200") If Left(Range(Cells), 1) = "0" Then Range(Cells) = "" & Mid(Range(Cells), 1, 9 ^ 9) Next Cells
Merci d'avance
Bonsoir, Je pense, car non spécialiste que le format texte serait le plus approprié pour avoir 01 23 45 67 89 avec Sheets(1).Range("A2:C200").Select Selection.NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##" Cordialement
Bonjour, 95% des n° importés sont correctement saisis et ils ont une longueur de 9 caractères. Et tous ces n° sont des n° d'appel France. Grâce à vous on peut traiter automatiquement le formatage de tous les n° de téléphone. Merci beaucoup.