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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21350981
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"
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
Tatanka
Le #21351251
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"
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


Philippe.R
Le #21351241
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" 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


Bear76
Le #21351331
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" 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
michdenis
Le #21351321
Et toi, après traitement, quel format de numéro de téléphone désires-tu avoir ?




"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" 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
Bear76
Le #21351411
michdenis avait énoncé :
Et toi, après traitement, quel format de numéro de téléphone désires-tu avoir
?




"Bear76" 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" 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
michdenis
Le #21351501
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"
michdenis avait énoncé :
Et toi, après traitement, quel format de numéro de téléphone désires-tu avoir
?




"Bear76" 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" 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
michdenis
Le #21351561
J'ai oublié la virgule au besoin !

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

Arr = Array(Chr(160), Chr(32), ".", "-", "(", ",")
Bear76
Le #21353611
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"
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.
@+
Bear76
Le #21353521
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" 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.
@+
Publicité
Poster une réponse
Anonyme