-----Message d'origine-----
Bonsoir,
j'ai une colonne contenant des chaines de caracteres du
type "NNN000123".
Par Visual Basic, je formate cette colonne de general en
texte.
Puis, avec un Columns("A:A").Replace What:="NNN",
Replacement:="", je
supprime ces trois lettres.
Grace au formatage fait avant, je devrais
obtenir "000123". Sauf que
j'obtiens "123" !
Pourquoi les 0 ne sont t'ils pas gardes ?
Je suis sous Win2000 avec Excel2003.
Merci pour vos reponses.
N.B. : en supprimant a la main les trois lettres apres le
formatage, j'ai
bien "000123".
.
-----Message d'origine-----
Bonsoir,
j'ai une colonne contenant des chaines de caracteres du
type "NNN000123".
Par Visual Basic, je formate cette colonne de general en
texte.
Puis, avec un Columns("A:A").Replace What:="NNN",
Replacement:="", je
supprime ces trois lettres.
Grace au formatage fait avant, je devrais
obtenir "000123". Sauf que
j'obtiens "123" !
Pourquoi les 0 ne sont t'ils pas gardes ?
Je suis sous Win2000 avec Excel2003.
Merci pour vos reponses.
N.B. : en supprimant a la main les trois lettres apres le
formatage, j'ai
bien "000123".
.
-----Message d'origine-----
Bonsoir,
j'ai une colonne contenant des chaines de caracteres du
type "NNN000123".
Par Visual Basic, je formate cette colonne de general en
texte.
Puis, avec un Columns("A:A").Replace What:="NNN",
Replacement:="", je
supprime ces trois lettres.
Grace au formatage fait avant, je devrais
obtenir "000123". Sauf que
j'obtiens "123" !
Pourquoi les 0 ne sont t'ils pas gardes ?
Je suis sous Win2000 avec Excel2003.
Merci pour vos reponses.
N.B. : en supprimant a la main les trois lettres apres le
formatage, j'ai
bien "000123".
.
Bonsoir,
j'ai une colonne contenant des chaines de caracteres du type "NNN000123".
Par Visual Basic, je formate cette colonne de general en texte.
Puis, avec un Columns("A:A").Replace What:="NNN", Replacement:="", je
supprime ces trois lettres.
Grace au formatage fait avant, je devrais obtenir "000123". Sauf que
j'obtiens "123" !
Pourquoi les 0 ne sont t'ils pas gardes ?
Je suis sous Win2000 avec Excel2003.
Merci pour vos reponses.
N.B. : en supprimant a la main les trois lettres apres le formatage, j'ai
bien "000123".
Bonsoir,
j'ai une colonne contenant des chaines de caracteres du type "NNN000123".
Par Visual Basic, je formate cette colonne de general en texte.
Puis, avec un Columns("A:A").Replace What:="NNN", Replacement:="", je
supprime ces trois lettres.
Grace au formatage fait avant, je devrais obtenir "000123". Sauf que
j'obtiens "123" !
Pourquoi les 0 ne sont t'ils pas gardes ?
Je suis sous Win2000 avec Excel2003.
Merci pour vos reponses.
N.B. : en supprimant a la main les trois lettres apres le formatage, j'ai
bien "000123".
Bonsoir,
j'ai une colonne contenant des chaines de caracteres du type "NNN000123".
Par Visual Basic, je formate cette colonne de general en texte.
Puis, avec un Columns("A:A").Replace What:="NNN", Replacement:="", je
supprime ces trois lettres.
Grace au formatage fait avant, je devrais obtenir "000123". Sauf que
j'obtiens "123" !
Pourquoi les 0 ne sont t'ils pas gardes ?
Je suis sous Win2000 avec Excel2003.
Merci pour vos reponses.
N.B. : en supprimant a la main les trois lettres apres le formatage, j'ai
bien "000123".
Bonsoir Tictok,
Une autre solution que celle de Michel mais qui ne fait pas apparaitre
l'apostrophe
Sub remplacer()
For Each a In Range("A:A")
If Left(a.Value, 3) = "NNN" Then
a.NumberFormat = "@"
a.Value = Format(Right(a.Value, Len(a.Value) - 3), "000000")
End If
Next
End Sub
Cordialement
Robert Dezan
Bonsoir Tictok,
Une autre solution que celle de Michel mais qui ne fait pas apparaitre
l'apostrophe
Sub remplacer()
For Each a In Range("A:A")
If Left(a.Value, 3) = "NNN" Then
a.NumberFormat = "@"
a.Value = Format(Right(a.Value, Len(a.Value) - 3), "000000")
End If
Next
End Sub
Cordialement
Robert Dezan
Bonsoir Tictok,
Une autre solution que celle de Michel mais qui ne fait pas apparaitre
l'apostrophe
Sub remplacer()
For Each a In Range("A:A")
If Left(a.Value, 3) = "NNN" Then
a.NumberFormat = "@"
a.Value = Format(Right(a.Value, Len(a.Value) - 3), "000000")
End If
Next
End Sub
Cordialement
Robert Dezan
Bonsoir Tictok,
Une autre solution que celle de Michel mais qui ne fait pas apparaitre
l'apostrophe
Sub remplacer()
For Each a In Range("A:A")
If Left(a.Value, 3) = "NNN" Then
a.NumberFormat = "@"
a.Value = Format(Right(a.Value, Len(a.Value) - 3), "000000")
End If
Next
End Sub
Cordialement
Robert Dezan
"tictok" a écrit dans le message de news:Bonsoir,
j'ai une colonne contenant des chaines de caracteres du type
"NNN000123".
Par Visual Basic, je formate cette colonne de general en texte.
Puis, avec un Columns("A:A").Replace What:="NNN", Replacement:="", je
supprime ces trois lettres.
Grace au formatage fait avant, je devrais obtenir "000123". Sauf que
j'obtiens "123" !
Pourquoi les 0 ne sont t'ils pas gardes ?
Je suis sous Win2000 avec Excel2003.
Merci pour vos reponses.
N.B. : en supprimant a la main les trois lettres apres le formatage,
j'ai
bien "000123".
Bonsoir Tictok,
Une autre solution que celle de Michel mais qui ne fait pas apparaitre
l'apostrophe
Sub remplacer()
For Each a In Range("A:A")
If Left(a.Value, 3) = "NNN" Then
a.NumberFormat = "@"
a.Value = Format(Right(a.Value, Len(a.Value) - 3), "000000")
End If
Next
End Sub
Cordialement
Robert Dezan
"tictok" <nomail@yet.com> a écrit dans le message de news:
uSgDFsDOEHA.3016@tk2msftngp13.phx.gbl...
Bonsoir,
j'ai une colonne contenant des chaines de caracteres du type
"NNN000123".
Par Visual Basic, je formate cette colonne de general en texte.
Puis, avec un Columns("A:A").Replace What:="NNN", Replacement:="", je
supprime ces trois lettres.
Grace au formatage fait avant, je devrais obtenir "000123". Sauf que
j'obtiens "123" !
Pourquoi les 0 ne sont t'ils pas gardes ?
Je suis sous Win2000 avec Excel2003.
Merci pour vos reponses.
N.B. : en supprimant a la main les trois lettres apres le formatage,
j'ai
bien "000123".
Bonsoir Tictok,
Une autre solution que celle de Michel mais qui ne fait pas apparaitre
l'apostrophe
Sub remplacer()
For Each a In Range("A:A")
If Left(a.Value, 3) = "NNN" Then
a.NumberFormat = "@"
a.Value = Format(Right(a.Value, Len(a.Value) - 3), "000000")
End If
Next
End Sub
Cordialement
Robert Dezan
"tictok" a écrit dans le message de news:Bonsoir,
j'ai une colonne contenant des chaines de caracteres du type
"NNN000123".
Par Visual Basic, je formate cette colonne de general en texte.
Puis, avec un Columns("A:A").Replace What:="NNN", Replacement:="", je
supprime ces trois lettres.
Grace au formatage fait avant, je devrais obtenir "000123". Sauf que
j'obtiens "123" !
Pourquoi les 0 ne sont t'ils pas gardes ?
Je suis sous Win2000 avec Excel2003.
Merci pour vos reponses.
N.B. : en supprimant a la main les trois lettres apres le formatage,
j'ai
bien "000123".
Thanks a lot Herdet !
Pourrais tu m'expliquer ton code car je ne vois pas comment ca fonctionne
???
"Herdet" escreveu na mensagem
news:Bonsoir Tictok,
Une autre solution que celle de Michel mais qui ne fait pas apparaitre
l'apostrophe
Sub remplacer()
For Each a In Range("A:A")
If Left(a.Value, 3) = "NNN" Then
a.NumberFormat = "@"
a.Value = Format(Right(a.Value, Len(a.Value) - 3), "000000")
End If
Next
End Sub
Cordialement
Robert Dezan
"tictok" a écrit dans le message de news:Bonsoir,
j'ai une colonne contenant des chaines de caracteres du type
"NNN000123".Par Visual Basic, je formate cette colonne de general en texte.
Puis, avec un Columns("A:A").Replace What:="NNN", Replacement:="", je
supprime ces trois lettres.
Grace au formatage fait avant, je devrais obtenir "000123". Sauf que
j'obtiens "123" !
Pourquoi les 0 ne sont t'ils pas gardes ?
Je suis sous Win2000 avec Excel2003.
Merci pour vos reponses.
N.B. : en supprimant a la main les trois lettres apres le formatage,
j'aibien "000123".
Thanks a lot Herdet !
Pourrais tu m'expliquer ton code car je ne vois pas comment ca fonctionne
???
"Herdet" <rdezan@noos.fr> escreveu na mensagem
news:uJE5zcEOEHA.1644@TK2MSFTNGP09.phx.gbl...
Bonsoir Tictok,
Une autre solution que celle de Michel mais qui ne fait pas apparaitre
l'apostrophe
Sub remplacer()
For Each a In Range("A:A")
If Left(a.Value, 3) = "NNN" Then
a.NumberFormat = "@"
a.Value = Format(Right(a.Value, Len(a.Value) - 3), "000000")
End If
Next
End Sub
Cordialement
Robert Dezan
"tictok" <nomail@yet.com> a écrit dans le message de news:
uSgDFsDOEHA.3016@tk2msftngp13.phx.gbl...
Bonsoir,
j'ai une colonne contenant des chaines de caracteres du type
"NNN000123".
Par Visual Basic, je formate cette colonne de general en texte.
Puis, avec un Columns("A:A").Replace What:="NNN", Replacement:="", je
supprime ces trois lettres.
Grace au formatage fait avant, je devrais obtenir "000123". Sauf que
j'obtiens "123" !
Pourquoi les 0 ne sont t'ils pas gardes ?
Je suis sous Win2000 avec Excel2003.
Merci pour vos reponses.
N.B. : en supprimant a la main les trois lettres apres le formatage,
j'ai
bien "000123".
Thanks a lot Herdet !
Pourrais tu m'expliquer ton code car je ne vois pas comment ca fonctionne
???
"Herdet" escreveu na mensagem
news:Bonsoir Tictok,
Une autre solution que celle de Michel mais qui ne fait pas apparaitre
l'apostrophe
Sub remplacer()
For Each a In Range("A:A")
If Left(a.Value, 3) = "NNN" Then
a.NumberFormat = "@"
a.Value = Format(Right(a.Value, Len(a.Value) - 3), "000000")
End If
Next
End Sub
Cordialement
Robert Dezan
"tictok" a écrit dans le message de news:Bonsoir,
j'ai une colonne contenant des chaines de caracteres du type
"NNN000123".Par Visual Basic, je formate cette colonne de general en texte.
Puis, avec un Columns("A:A").Replace What:="NNN", Replacement:="", je
supprime ces trois lettres.
Grace au formatage fait avant, je devrais obtenir "000123". Sauf que
j'obtiens "123" !
Pourquoi les 0 ne sont t'ils pas gardes ?
Je suis sous Win2000 avec Excel2003.
Merci pour vos reponses.
N.B. : en supprimant a la main les trois lettres apres le formatage,
j'aibien "000123".
Bonjour Titock,
Explication de la solution :
Sub remplacer()
' ----- a est une simple référence à la cellule de travail sur
laquelle
on peut appliquer
' toutes les propriétés d'un Range (a.value, a.select, a.row,
a.column,....)
' ------ pour toutes les cellules de la colonne A
For Each a In Range("A:A")
' ----- si les 3 caractères de gauche de la valeur de la cellule
(a.value) = "NNN"
If Left(a.Value, 3) = "NNN" Then
' ---- passer le format en Texte
a.NumberFormat = "@"
' ---- écrire la partie de droite moins les 3 premiers
caractères
' ---- forcer le formatage du resultat sur 6 caractères
a.Value = Format(Right(a.Value, Len(a.Value) - 3), "000000")
End If
Next
End Sub
Si tu veux faire une sélection partielle sur A :
1) Soit mettre le range en dur par :
For Each a In Range("A1:A50")
2) soit mettre le range avec emploi d'une variable de ligne
n= 48
For Each a In Range(cells(1,1), cells(n,1))
......
3) soit mettre le range avec emploi de variables
Cette solution est beaucoup plus souple car elle permet de
travailler sur n'importe qu'elle plage définie en lignes et colonnes
L1 = 5, L2 = 58, C1 = 1, C2 = 3
For Each a In Range(cells(L1,C1), cells(L2,C2))
.....
Cordiales salutations
Robert Dezan
Bonjour Titock,
Explication de la solution :
Sub remplacer()
' ----- a est une simple référence à la cellule de travail sur
laquelle
on peut appliquer
' toutes les propriétés d'un Range (a.value, a.select, a.row,
a.column,....)
' ------ pour toutes les cellules de la colonne A
For Each a In Range("A:A")
' ----- si les 3 caractères de gauche de la valeur de la cellule
(a.value) = "NNN"
If Left(a.Value, 3) = "NNN" Then
' ---- passer le format en Texte
a.NumberFormat = "@"
' ---- écrire la partie de droite moins les 3 premiers
caractères
' ---- forcer le formatage du resultat sur 6 caractères
a.Value = Format(Right(a.Value, Len(a.Value) - 3), "000000")
End If
Next
End Sub
Si tu veux faire une sélection partielle sur A :
1) Soit mettre le range en dur par :
For Each a In Range("A1:A50")
2) soit mettre le range avec emploi d'une variable de ligne
n= 48
For Each a In Range(cells(1,1), cells(n,1))
......
3) soit mettre le range avec emploi de variables
Cette solution est beaucoup plus souple car elle permet de
travailler sur n'importe qu'elle plage définie en lignes et colonnes
L1 = 5, L2 = 58, C1 = 1, C2 = 3
For Each a In Range(cells(L1,C1), cells(L2,C2))
.....
Cordiales salutations
Robert Dezan
Bonjour Titock,
Explication de la solution :
Sub remplacer()
' ----- a est une simple référence à la cellule de travail sur
laquelle
on peut appliquer
' toutes les propriétés d'un Range (a.value, a.select, a.row,
a.column,....)
' ------ pour toutes les cellules de la colonne A
For Each a In Range("A:A")
' ----- si les 3 caractères de gauche de la valeur de la cellule
(a.value) = "NNN"
If Left(a.Value, 3) = "NNN" Then
' ---- passer le format en Texte
a.NumberFormat = "@"
' ---- écrire la partie de droite moins les 3 premiers
caractères
' ---- forcer le formatage du resultat sur 6 caractères
a.Value = Format(Right(a.Value, Len(a.Value) - 3), "000000")
End If
Next
End Sub
Si tu veux faire une sélection partielle sur A :
1) Soit mettre le range en dur par :
For Each a In Range("A1:A50")
2) soit mettre le range avec emploi d'une variable de ligne
n= 48
For Each a In Range(cells(1,1), cells(n,1))
......
3) soit mettre le range avec emploi de variables
Cette solution est beaucoup plus souple car elle permet de
travailler sur n'importe qu'elle plage définie en lignes et colonnes
L1 = 5, L2 = 58, C1 = 1, C2 = 3
For Each a In Range(cells(L1,C1), cells(L2,C2))
.....
Cordiales salutations
Robert Dezan