Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Vérifier que le premier caractère d'une chaine de caractère est 0 dans ce cas le supprimer

11 réponses
Avatar
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

Merci d'avance

10 réponses

1 2
Avatar
michdenis
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
Avatar
Tatanka
Bonsoir Bear76,

Est-ce que cette macro te convient ?

Sub Supprime_Un_Zero_Au_Debut()
Dim c As Range
For Each c In Sheets(1).Range("A2:C700")
If Left(c.Value, 1) = "0" Then c.Value = Mid(c.Value, 2, 9 ^ 9)
Next c
End Sub

Serge



"Bear76" a écrit dans le message de news:
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


Avatar
Philippe.R
Bonsoir,

Un truc comme ça convient il ?

Sub supzero()
For Each c In Selection
If Left(c.Value, 1) = 0 Then _
c.Value = Right(c.Value, _
Len(c.Value) - 1)
Next c
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/web/mpfe
News://news.microsoft.com/microsoft.public.fr.excel
"Bear76" a écrit dans le message de
news:
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


Avatar
Bear76
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
Avatar
michdenis
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
Avatar
Bear76
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
Avatar
michdenis
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

Arr = Array(Chr(160), Chr(32), ".", "-", "(", ")")

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
Avatar
michdenis
J'ai oublié la virgule au besoin !

Utilise plutôt cette ligne dans la procédure :

Arr = Array(Chr(160), Chr(32), ".", "-", "(", ",")
Avatar
Bear76
Tatanka avait écrit le 09/03/2010 :
Bonsoir Bear76,

Est-ce que cette macro te convient ?

Sub Supprime_Un_Zero_Au_Debut()
Dim c As Range
For Each c In Sheets(1).Range("A2:C700")
If Left(c.Value, 1) = "0" Then c.Value = Mid(c.Value, 2, 9 ^ 9)
Next c
End Sub

Serge



"Bear76" a écrit dans le message de news:

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







Bonjour,
Merci beaucoup pour cette réponse.
@+
Avatar
Bear76
Philippe.R avait soumis l'idée :
Bonsoir,

Un truc comme ça convient il ?

Sub supzero()
For Each c In Selection
If Left(c.Value, 1) = 0 Then _
c.Value = Right(c.Value, _
Len(c.Value) - 1)
Next c
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/web/mpfe
News://news.microsoft.com/microsoft.public.fr.excel
"Bear76" a écrit dans le message de
news:
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







Bonjour,
Et merci beaucoup pour cette réponse.
@+
1 2