Je ne suis pas très "pro" dans l'utilisation d'excel et je bute devant le
problème suivant.
J'ai récupéré une liste d'une base de données où figurent des nombres, mais
pour les besoins ultéreiurs d'un traitement, j'ai besoin que ces nombres
soient considérés comme du TEXTE. (d'ailleurs la base récupérée me les
affiche ainsi et c'est bien).
Par contre si s'ajoute des lignes dans le tableau, les chiffres sont
considérés au format NOMBRE. Qui plus est j'ai besoin que le "0" soit
affiché en première position "01234"
J'ai essayé de formater la cellule en texte : cela ne marche pas
J'ai également éssayé de recopier une ligne ou le format était le bon (une
ligne importée de ma base) et de l'éditer ensuite, mais lorsque je valide,
la cellule est à nouveau formatée en NOMBRE.
Ben non, merci encore Docm et AV n'obtiens pas d'erreur mais si c'est le cas chez d'autres (peut-être versions )et puis plus proprement:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then With Target.Cells If IsNumeric(.Value) Then Application.EnableEvents = False .Value = "'" & .Value Application.EnableEvents = True End If End With End If End Sub
;-)
"LeSteph" a écrit dans le message de news:%
Merci AV , je comprends parfaitement l'explication est claire mais je ne comprends pas chez moi aucune boucle sans fin??? Se pourrait-il que EnableEvents = False par défaut ..je vais vérifier en forçant true avant l'instruction et je reviens ..
"AV" a écrit dans le message de news:%
Vérifié même en plaçant une formule référant à la plage pas de boucle sans fin!
Ca boucle inutilement car, comme tu modifies la valeur de "Target", tu redéclenches chaque fois l'évènement "Worksheet_Change" Pour éviter : .......... If IsNumeric(.Value) Then Application.EnableEvents = False .Value = "'" & .Value Application.EnableEvents = True End If .......
AV
Ben non, merci encore Docm et AV
n'obtiens pas d'erreur mais si c'est le cas
chez d'autres (peut-être versions )et puis plus proprement:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
With Target.Cells
If IsNumeric(.Value) Then
Application.EnableEvents = False
.Value = "'" & .Value
Application.EnableEvents = True
End If
End With
End If
End Sub
;-)
"LeSteph" <lecocosteph@frite.fr> a écrit dans le message de
news:%233HpUJxkEHA.1644@tk2msftngp13.phx.gbl...
Merci AV ,
je comprends parfaitement l'explication est claire
mais je ne comprends pas
chez moi aucune boucle sans fin???
Se pourrait-il que EnableEvents = False par défaut
..je vais vérifier en forçant true avant l'instruction et
je reviens ..
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:%239qtMBxkEHA.3104@TK2MSFTNGP14.phx.gbl...
Vérifié même en plaçant une formule référant à la plage
pas de boucle sans fin!
Ca boucle inutilement car, comme tu modifies la valeur de "Target", tu
redéclenches chaque fois l'évènement "Worksheet_Change"
Pour éviter :
..........
If IsNumeric(.Value) Then
Application.EnableEvents = False
.Value = "'" & .Value
Application.EnableEvents = True
End If
.......
Ben non, merci encore Docm et AV n'obtiens pas d'erreur mais si c'est le cas chez d'autres (peut-être versions )et puis plus proprement:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then With Target.Cells If IsNumeric(.Value) Then Application.EnableEvents = False .Value = "'" & .Value Application.EnableEvents = True End If End With End If End Sub
;-)
"LeSteph" a écrit dans le message de news:%
Merci AV , je comprends parfaitement l'explication est claire mais je ne comprends pas chez moi aucune boucle sans fin??? Se pourrait-il que EnableEvents = False par défaut ..je vais vérifier en forçant true avant l'instruction et je reviens ..
"AV" a écrit dans le message de news:%
Vérifié même en plaçant une formule référant à la plage pas de boucle sans fin!
Ca boucle inutilement car, comme tu modifies la valeur de "Target", tu redéclenches chaque fois l'évènement "Worksheet_Change" Pour éviter : .......... If IsNumeric(.Value) Then Application.EnableEvents = False .Value = "'" & .Value Application.EnableEvents = True End If .......
AV
LeSteph
Me voilà rassuré j'ai essayé en modifiant juste ton code cidessous: '*** If IsNumeric(.Value) Then .Value = "'" & .Value + x '*** Visiblement c'est Excel2003 qui gère trop bien le bug puisque lorsque avec cet incrément je rentre 14 on s'arrête à 230873. Merci encore
"docm" a écrit dans le message de news:u$
LeSteph, tu peux le vérifier en utilisant F8 (le pas à pas) ou en incrémentant une variable statique dans la macro:
Private Sub Worksheet_Change(ByVal Target As Range) Static x As Long x = x + 1 Debug.Print x DoEvents If Target.Column = 1 Then With Target.Cells If IsNumeric(.Value) Then .Value = "'" & .Value End If End With End If End Sub
"LeSteph" wrote in message news:#
Merci AV , je comprends parfaitement l'explication est claire mais je ne comprends pas chez moi aucune boucle sans fin??? Se pourrait-il que EnableEvents = False par défaut ..je vais vérifier en forçant true avant l'instruction et je reviens ..
"AV" a écrit dans le message de news:%
Vérifié même en plaçant une formule référant à la plage pas de boucle sans fin!
Ca boucle inutilement car, comme tu modifies la valeur de "Target", tu redéclenches chaque fois l'évènement "Worksheet_Change" Pour éviter : .......... If IsNumeric(.Value) Then Application.EnableEvents = False .Value = "'" & .Value Application.EnableEvents = True End If .......
AV
Me voilà rassuré
j'ai essayé en modifiant juste
ton code cidessous:
'***
If IsNumeric(.Value) Then
.Value = "'" & .Value + x
'***
Visiblement c'est Excel2003 qui gère trop bien le bug
puisque lorsque avec cet incrément je rentre 14 on s'arrête à 230873.
Merci encore
"docm" <docmarti@spamcolba.net> a écrit dans le message de
news:u$qrlZxkEHA.3520@TK2MSFTNGP11.phx.gbl...
LeSteph, tu peux le vérifier en utilisant F8 (le pas à pas)
ou en incrémentant une variable statique dans la macro:
Private Sub Worksheet_Change(ByVal Target As Range)
Static x As Long
x = x + 1
Debug.Print x
DoEvents
If Target.Column = 1 Then
With Target.Cells
If IsNumeric(.Value) Then
.Value = "'" & .Value
End If
End With
End If
End Sub
"LeSteph" <lecocosteph@frite.fr> wrote in message
news:#3HpUJxkEHA.1644@tk2msftngp13.phx.gbl...
Merci AV ,
je comprends parfaitement l'explication est claire
mais je ne comprends pas
chez moi aucune boucle sans fin???
Se pourrait-il que EnableEvents = False par défaut
..je vais vérifier en forçant true avant l'instruction et
je reviens ..
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:%239qtMBxkEHA.3104@TK2MSFTNGP14.phx.gbl...
Vérifié même en plaçant une formule référant à la plage
pas de boucle sans fin!
Ca boucle inutilement car, comme tu modifies la valeur de "Target", tu
redéclenches chaque fois l'évènement "Worksheet_Change"
Pour éviter :
..........
If IsNumeric(.Value) Then
Application.EnableEvents = False
.Value = "'" & .Value
Application.EnableEvents = True
End If
.......
Me voilà rassuré j'ai essayé en modifiant juste ton code cidessous: '*** If IsNumeric(.Value) Then .Value = "'" & .Value + x '*** Visiblement c'est Excel2003 qui gère trop bien le bug puisque lorsque avec cet incrément je rentre 14 on s'arrête à 230873. Merci encore
"docm" a écrit dans le message de news:u$
LeSteph, tu peux le vérifier en utilisant F8 (le pas à pas) ou en incrémentant une variable statique dans la macro:
Private Sub Worksheet_Change(ByVal Target As Range) Static x As Long x = x + 1 Debug.Print x DoEvents If Target.Column = 1 Then With Target.Cells If IsNumeric(.Value) Then .Value = "'" & .Value End If End With End If End Sub
"LeSteph" wrote in message news:#
Merci AV , je comprends parfaitement l'explication est claire mais je ne comprends pas chez moi aucune boucle sans fin??? Se pourrait-il que EnableEvents = False par défaut ..je vais vérifier en forçant true avant l'instruction et je reviens ..
"AV" a écrit dans le message de news:%
Vérifié même en plaçant une formule référant à la plage pas de boucle sans fin!
Ca boucle inutilement car, comme tu modifies la valeur de "Target", tu redéclenches chaque fois l'évènement "Worksheet_Change" Pour éviter : .......... If IsNumeric(.Value) Then Application.EnableEvents = False .Value = "'" & .Value Application.EnableEvents = True End If .......
AV
Misange
Ta macro provoque une bouche sans fin. sans faim plutôt non ?
je vais l'essayer, ça allègera le caddy hebdomadaire (qui a dit dromadaire ?)
Misange migrateuse http://www.excelabo.net mail : http://cerbermail.com/?k5Q8Dh2mta
Ta macro provoque une bouche sans fin.
sans faim plutôt non ?
je vais l'essayer, ça allègera le caddy hebdomadaire (qui a dit
dromadaire ?)
Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta