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.
Bonjour, Bonne idée mais en VBA on peut faire plus direct dans le code de la feuille: '*** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then With Target.Cells If IsNumeric(.Value) Then .Value = "'" & .Value End If End With End If End Sub '*** ' ;-) 'leSteph
"bruno" a écrit dans le message de news:41399d52$0$31368$
"LeSteph" a écrit dans le message de news:413961cc$0$31369$ | Bonjour FF, | | Pour traiter globalement: | selectionner la colonne données convertir...Suivant... texte.. | | Mais cela ne résoud pas ton pb lors de la saisie: | tu peux mettre une quote ' devant le nombre | ainsi: '12 sera considéré comme du texte |
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte() ' ' Cette macro force les cellules de la sélection au format texte en ajoutant
le caractère ' en début de chaine. ' ' Dim ChMess As String Dim ChTitle As String Dim Vide As String Vide = "" ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte ?"
ChTitle = "Format Texte" If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False Dim C As Variant For Each C In Selection If IsEmpty(C) Or IsNull(C) Or C = Vide Then 'On sort si la cellule est vide Else C.Formula = "'" & C End If Next C Application.ScreenUpdating = True End If End Sub
Bonjour LeSteph
Ta macro provoque une bouche sans fin.
"LeSteph" <lecocosteph@frite.fr> wrote in message
news:OeqEuYnkEHA.272@tk2msftngp13.phx.gbl...
Bonjour,
Bonne idée mais en VBA on peut faire plus direct
dans le code de la feuille:
'***
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
With Target.Cells
If IsNumeric(.Value) Then
.Value = "'" & .Value
End If
End With
End If
End Sub
'***
' ;-)
'leSteph
"bruno" <bruno.truc.maria@libertysurf.truc.fr> a écrit dans le message de
news:41399d52$0$31368$636a15ce@news.free.fr...
"LeSteph" <lecocosteph@frite.fr> a écrit dans le message de
news:413961cc$0$31369$636a15ce@news.free.fr...
| Bonjour FF,
|
| Pour traiter globalement:
| selectionner la colonne données convertir...Suivant... texte..
|
| Mais cela ne résoud pas ton pb lors de la saisie:
| tu peux mettre une quote ' devant le nombre
| ainsi: '12 sera considéré comme du texte
|
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte()
'
' Cette macro force les cellules de la sélection au format texte en
ajoutant
le caractère ' en début de chaine.
'
'
Dim ChMess As String
Dim ChTitle As String
Dim Vide As String
Vide = ""
ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte
?"
ChTitle = "Format Texte"
If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False
Dim C As Variant
For Each C In Selection
If IsEmpty(C) Or IsNull(C) Or C = Vide Then
'On sort si la cellule est vide
Else
C.Formula = "'" & C
End If
Next C
Application.ScreenUpdating = True
End If
End Sub
Bonjour, Bonne idée mais en VBA on peut faire plus direct dans le code de la feuille: '*** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then With Target.Cells If IsNumeric(.Value) Then .Value = "'" & .Value End If End With End If End Sub '*** ' ;-) 'leSteph
"bruno" a écrit dans le message de news:41399d52$0$31368$
"LeSteph" a écrit dans le message de news:413961cc$0$31369$ | Bonjour FF, | | Pour traiter globalement: | selectionner la colonne données convertir...Suivant... texte.. | | Mais cela ne résoud pas ton pb lors de la saisie: | tu peux mettre une quote ' devant le nombre | ainsi: '12 sera considéré comme du texte |
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte() ' ' Cette macro force les cellules de la sélection au format texte en ajoutant
le caractère ' en début de chaine. ' ' Dim ChMess As String Dim ChTitle As String Dim Vide As String Vide = "" ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte ?"
ChTitle = "Format Texte" If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False Dim C As Variant For Each C In Selection If IsEmpty(C) Or IsNull(C) Or C = Vide Then 'On sort si la cellule est vide Else C.Formula = "'" & C End If Next C Application.ScreenUpdating = True End If End Sub
LeSteph
Bonjour FF,
Pour traiter globalement: selectionner la colonne données convertir...Suivant... texte..
Mais cela ne résoud pas ton pb lors de la saisie: tu peux mettre une quote ' devant le nombre ainsi: '12 sera considéré comme du texte
LeSteph
"F.F." a écrit dans le message de news:41395a38$0$313$
bonjour à tous,
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.
Je ne sais pas sis je suis clair !!
Merci pour vos réponses ...
Bonjour FF,
Pour traiter globalement:
selectionner la colonne données convertir...Suivant... texte..
Mais cela ne résoud pas ton pb lors de la saisie:
tu peux mettre une quote ' devant le nombre
ainsi: '12 sera considéré comme du texte
LeSteph
"F.F." <F.FORTERRE@LAPOSTE.NET> a écrit dans le message de
news:41395a38$0$313$7a628cd7@news.club-internet.fr...
bonjour à tous,
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.
Pour traiter globalement: selectionner la colonne données convertir...Suivant... texte..
Mais cela ne résoud pas ton pb lors de la saisie: tu peux mettre une quote ' devant le nombre ainsi: '12 sera considéré comme du texte
LeSteph
"F.F." a écrit dans le message de news:41395a38$0$313$
bonjour à tous,
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.
Je ne sais pas sis je suis clair !!
Merci pour vos réponses ...
docm
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
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
.......
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
bruno
"LeSteph" a écrit dans le message de news:413961cc$0$31369$ | Bonjour FF, | | Pour traiter globalement: | selectionner la colonne données convertir...Suivant... texte.. | | Mais cela ne résoud pas ton pb lors de la saisie: | tu peux mettre une quote ' devant le nombre | ainsi: '12 sera considéré comme du texte |
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte() ' ' Cette macro force les cellules de la sélection au format texte en ajoutant le caractère ' en début de chaine. ' ' Dim ChMess As String Dim ChTitle As String Dim Vide As String Vide = "" ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte ?" ChTitle = "Format Texte" If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False Dim C As Variant For Each C In Selection If IsEmpty(C) Or IsNull(C) Or C = Vide Then 'On sort si la cellule est vide Else C.Formula = "'" & C End If Next C Application.ScreenUpdating = True End If End Sub
"LeSteph" <lecocosteph@frite.fr> a écrit dans le message de
news:413961cc$0$31369$636a15ce@news.free.fr...
| Bonjour FF,
|
| Pour traiter globalement:
| selectionner la colonne données convertir...Suivant... texte..
|
| Mais cela ne résoud pas ton pb lors de la saisie:
| tu peux mettre une quote ' devant le nombre
| ainsi: '12 sera considéré comme du texte
|
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte()
'
' Cette macro force les cellules de la sélection au format texte en ajoutant
le caractère ' en début de chaine.
'
'
Dim ChMess As String
Dim ChTitle As String
Dim Vide As String
Vide = ""
ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte ?"
ChTitle = "Format Texte"
If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False
Dim C As Variant
For Each C In Selection
If IsEmpty(C) Or IsNull(C) Or C = Vide Then
'On sort si la cellule est vide
Else
C.Formula = "'" & C
End If
Next C
Application.ScreenUpdating = True
End If
End Sub
"LeSteph" a écrit dans le message de news:413961cc$0$31369$ | Bonjour FF, | | Pour traiter globalement: | selectionner la colonne données convertir...Suivant... texte.. | | Mais cela ne résoud pas ton pb lors de la saisie: | tu peux mettre une quote ' devant le nombre | ainsi: '12 sera considéré comme du texte |
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte() ' ' Cette macro force les cellules de la sélection au format texte en ajoutant le caractère ' en début de chaine. ' ' Dim ChMess As String Dim ChTitle As String Dim Vide As String Vide = "" ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte ?" ChTitle = "Format Texte" If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False Dim C As Variant For Each C In Selection If IsEmpty(C) Or IsNull(C) Or C = Vide Then 'On sort si la cellule est vide Else C.Formula = "'" & C End If Next C Application.ScreenUpdating = True End If End Sub
LeSteph
Bonjour, Bonne idée mais en VBA on peut faire plus direct dans le code de la feuille: '*** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then With Target.Cells If IsNumeric(.Value) Then .Value = "'" & .Value End If End With End If End Sub '*** ' ;-) 'leSteph
"bruno" a écrit dans le message de news:41399d52$0$31368$
"LeSteph" a écrit dans le message de news:413961cc$0$31369$ | Bonjour FF, | | Pour traiter globalement: | selectionner la colonne données convertir...Suivant... texte.. | | Mais cela ne résoud pas ton pb lors de la saisie: | tu peux mettre une quote ' devant le nombre | ainsi: '12 sera considéré comme du texte |
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte() ' ' Cette macro force les cellules de la sélection au format texte en ajoutant
le caractère ' en début de chaine. ' ' Dim ChMess As String Dim ChTitle As String Dim Vide As String Vide = "" ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte ?" ChTitle = "Format Texte" If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False Dim C As Variant For Each C In Selection If IsEmpty(C) Or IsNull(C) Or C = Vide Then 'On sort si la cellule est vide Else C.Formula = "'" & C End If Next C Application.ScreenUpdating = True End If End Sub
Bonjour,
Bonne idée mais en VBA on peut faire plus direct
dans le code de la feuille:
'***
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
With Target.Cells
If IsNumeric(.Value) Then
.Value = "'" & .Value
End If
End With
End If
End Sub
'***
' ;-)
'leSteph
"bruno" <bruno.truc.maria@libertysurf.truc.fr> a écrit dans le message de
news:41399d52$0$31368$636a15ce@news.free.fr...
"LeSteph" <lecocosteph@frite.fr> a écrit dans le message de
news:413961cc$0$31369$636a15ce@news.free.fr...
| Bonjour FF,
|
| Pour traiter globalement:
| selectionner la colonne données convertir...Suivant... texte..
|
| Mais cela ne résoud pas ton pb lors de la saisie:
| tu peux mettre une quote ' devant le nombre
| ainsi: '12 sera considéré comme du texte
|
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte()
'
' Cette macro force les cellules de la sélection au format texte en
ajoutant
le caractère ' en début de chaine.
'
'
Dim ChMess As String
Dim ChTitle As String
Dim Vide As String
Vide = ""
ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte ?"
ChTitle = "Format Texte"
If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False
Dim C As Variant
For Each C In Selection
If IsEmpty(C) Or IsNull(C) Or C = Vide Then
'On sort si la cellule est vide
Else
C.Formula = "'" & C
End If
Next C
Application.ScreenUpdating = True
End If
End Sub
Bonjour, Bonne idée mais en VBA on peut faire plus direct dans le code de la feuille: '*** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then With Target.Cells If IsNumeric(.Value) Then .Value = "'" & .Value End If End With End If End Sub '*** ' ;-) 'leSteph
"bruno" a écrit dans le message de news:41399d52$0$31368$
"LeSteph" a écrit dans le message de news:413961cc$0$31369$ | Bonjour FF, | | Pour traiter globalement: | selectionner la colonne données convertir...Suivant... texte.. | | Mais cela ne résoud pas ton pb lors de la saisie: | tu peux mettre une quote ' devant le nombre | ainsi: '12 sera considéré comme du texte |
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte() ' ' Cette macro force les cellules de la sélection au format texte en ajoutant
le caractère ' en début de chaine. ' ' Dim ChMess As String Dim ChTitle As String Dim Vide As String Vide = "" ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte ?" ChTitle = "Format Texte" If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False Dim C As Variant For Each C In Selection If IsEmpty(C) Or IsNull(C) Or C = Vide Then 'On sort si la cellule est vide Else C.Formula = "'" & C End If Next C Application.ScreenUpdating = True End If End Sub
docm
Ta macro provoque une bouche sans fin. sans faim plutôt non ?
Mais, mais... se fouterait-elle de ma gueule? ;)
je vais l'essayer, ça allègera le caddy hebdomadaire (qui a dit dromadaire ?)
Ta macro provoque une bouche sans fin.
sans faim plutôt non ?
Mais, mais... se fouterait-elle de ma gueule? ;)
je vais l'essayer, ça allègera le caddy hebdomadaire (qui a dit
dromadaire ?)
Ta macro provoque une bouche sans fin. sans faim plutôt non ?
Mais, mais... se fouterait-elle de ma gueule? ;)
je vais l'essayer, ça allègera le caddy hebdomadaire (qui a dit dromadaire ?)
LeSteph
Bonjour Docm, Au départ je ne préconnisai pas de macro car FF a exprimé:>>Je ne suis pas très "pro" dans l'utilisation d'excel J'ai écrit celle-ci à la volée en évennement Worksheet_change (car celle gentillement proposée par Bruno me semble un peu plus lourde en opérations que de mettre une quote devant un chiffre) .
Sinon à l'instant l'ayant testée (xl2003) elle ne génère pas une telle boucle.
Peux-tu préciser dans quelle circonstances tu obtiens cette boucle? Ainsi je vais pouvoir rectifier (si tant est que) FF souhaite une macro... Merci pour ta prévenance ,en attendant je vais revérifier, si calculs sur Target etc...
Amicalement
LeSteph
"docm" a écrit dans le message de news:
Bonjour LeSteph
Ta macro provoque une bouche sans fin.
"LeSteph" wrote in message news:
Bonjour, Bonne idée mais en VBA on peut faire plus direct dans le code de la feuille: '*** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then With Target.Cells If IsNumeric(.Value) Then .Value = "'" & .Value End If End With End If End Sub '*** ' ;-) 'leSteph
"bruno" a écrit dans le message de
news:41399d52$0$31368$
"LeSteph" a écrit dans le message de news:413961cc$0$31369$ | Bonjour FF, | | Pour traiter globalement: | selectionner la colonne données convertir...Suivant... texte.. | | Mais cela ne résoud pas ton pb lors de la saisie: | tu peux mettre une quote ' devant le nombre | ainsi: '12 sera considéré comme du texte |
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte() ' ' Cette macro force les cellules de la sélection au format texte en ajoutant
le caractère ' en début de chaine. ' ' Dim ChMess As String Dim ChTitle As String Dim Vide As String Vide = "" ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte
?"
ChTitle = "Format Texte" If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False Dim C As Variant For Each C In Selection If IsEmpty(C) Or IsNull(C) Or C = Vide Then 'On sort si la cellule est vide Else C.Formula = "'" & C End If Next C Application.ScreenUpdating = True End If End Sub
Bonjour Docm,
Au départ je ne préconnisai pas de macro car
FF a exprimé:>>Je ne suis pas très "pro" dans l'utilisation d'excel
J'ai écrit celle-ci à la volée en évennement Worksheet_change
(car celle gentillement proposée par Bruno me semble un peu plus
lourde en opérations que de mettre une quote devant un chiffre) .
Sinon à l'instant l'ayant testée (xl2003) elle ne génère pas une telle
boucle.
Peux-tu préciser dans quelle circonstances tu obtiens cette boucle?
Ainsi je vais pouvoir rectifier (si tant est que) FF souhaite une macro...
Merci pour ta prévenance ,en attendant je vais revérifier, si calculs sur
Target etc...
Amicalement
LeSteph
"docm" <docmarti@spamcolba.net> a écrit dans le message de
news:OAnOLXukEHA.1348@TK2MSFTNGP15.phx.gbl...
Bonjour LeSteph
Ta macro provoque une bouche sans fin.
"LeSteph" <lecocosteph@frite.fr> wrote in message
news:OeqEuYnkEHA.272@tk2msftngp13.phx.gbl...
Bonjour,
Bonne idée mais en VBA on peut faire plus direct
dans le code de la feuille:
'***
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
With Target.Cells
If IsNumeric(.Value) Then
.Value = "'" & .Value
End If
End With
End If
End Sub
'***
' ;-)
'leSteph
"bruno" <bruno.truc.maria@libertysurf.truc.fr> a écrit dans le message
de
news:41399d52$0$31368$636a15ce@news.free.fr...
"LeSteph" <lecocosteph@frite.fr> a écrit dans le message de
news:413961cc$0$31369$636a15ce@news.free.fr...
| Bonjour FF,
|
| Pour traiter globalement:
| selectionner la colonne données convertir...Suivant... texte..
|
| Mais cela ne résoud pas ton pb lors de la saisie:
| tu peux mettre une quote ' devant le nombre
| ainsi: '12 sera considéré comme du texte
|
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte()
'
' Cette macro force les cellules de la sélection au format texte en
ajoutant
le caractère ' en début de chaine.
'
'
Dim ChMess As String
Dim ChTitle As String
Dim Vide As String
Vide = ""
ChMess = "Voulez-vous forcer les cellules Sélectionnées en format
texte
?"
ChTitle = "Format Texte"
If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False
Dim C As Variant
For Each C In Selection
If IsEmpty(C) Or IsNull(C) Or C = Vide Then
'On sort si la cellule est vide
Else
C.Formula = "'" & C
End If
Next C
Application.ScreenUpdating = True
End If
End Sub
Bonjour Docm, Au départ je ne préconnisai pas de macro car FF a exprimé:>>Je ne suis pas très "pro" dans l'utilisation d'excel J'ai écrit celle-ci à la volée en évennement Worksheet_change (car celle gentillement proposée par Bruno me semble un peu plus lourde en opérations que de mettre une quote devant un chiffre) .
Sinon à l'instant l'ayant testée (xl2003) elle ne génère pas une telle boucle.
Peux-tu préciser dans quelle circonstances tu obtiens cette boucle? Ainsi je vais pouvoir rectifier (si tant est que) FF souhaite une macro... Merci pour ta prévenance ,en attendant je vais revérifier, si calculs sur Target etc...
Amicalement
LeSteph
"docm" a écrit dans le message de news:
Bonjour LeSteph
Ta macro provoque une bouche sans fin.
"LeSteph" wrote in message news:
Bonjour, Bonne idée mais en VBA on peut faire plus direct dans le code de la feuille: '*** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then With Target.Cells If IsNumeric(.Value) Then .Value = "'" & .Value End If End With End If End Sub '*** ' ;-) 'leSteph
"bruno" a écrit dans le message de
news:41399d52$0$31368$
"LeSteph" a écrit dans le message de news:413961cc$0$31369$ | Bonjour FF, | | Pour traiter globalement: | selectionner la colonne données convertir...Suivant... texte.. | | Mais cela ne résoud pas ton pb lors de la saisie: | tu peux mettre une quote ' devant le nombre | ainsi: '12 sera considéré comme du texte |
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte() ' ' Cette macro force les cellules de la sélection au format texte en ajoutant
le caractère ' en début de chaine. ' ' Dim ChMess As String Dim ChTitle As String Dim Vide As String Vide = "" ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte
?"
ChTitle = "Format Texte" If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False Dim C As Variant For Each C In Selection If IsEmpty(C) Or IsNull(C) Or C = Vide Then 'On sort si la cellule est vide Else C.Formula = "'" & C End If Next C Application.ScreenUpdating = True End If End Sub
LeSteph
Rebonjour, Vérifié même en plaçant une formule référant à la plage pas de boucle sans fin!
"docm" a exprimé ainsi:
Ta macro provoque une bouche sans fin.
A moins d'un lapsus évoquant quelque appel sans objet
;-) lol
"LeSteph" a écrit dans le message de news:413aa901$0$8246$
Bonjour Docm, Au départ je ne préconnisai pas de macro car FF a exprimé:>>Je ne suis pas très "pro" dans l'utilisation d'excel J'ai écrit celle-ci à la volée en évennement Worksheet_change (car celle gentillement proposée par Bruno me semble un peu plus lourde en opérations que de mettre une quote devant un chiffre) .
Sinon à l'instant l'ayant testée (xl2003) elle ne génère pas une telle boucle.
Peux-tu préciser dans quelle circonstances tu obtiens cette boucle? Ainsi je vais pouvoir rectifier (si tant est que) FF souhaite une macro... Merci pour ta prévenance ,en attendant je vais revérifier, si calculs sur Target etc...
Amicalement
LeSteph
"docm" a écrit dans le message de news:
Bonjour LeSteph
Ta macro provoque une bouche sans fin.
"LeSteph" wrote in message news:
Bonjour, Bonne idée mais en VBA on peut faire plus direct dans le code de la feuille: '*** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then With Target.Cells If IsNumeric(.Value) Then .Value = "'" & .Value End If End With End If End Sub '*** ' ;-) 'leSteph
"bruno" a écrit dans le message de
news:41399d52$0$31368$
"LeSteph" a écrit dans le message de news:413961cc$0$31369$ | Bonjour FF, | | Pour traiter globalement: | selectionner la colonne données convertir...Suivant... texte.. | | Mais cela ne résoud pas ton pb lors de la saisie: | tu peux mettre une quote ' devant le nombre | ainsi: '12 sera considéré comme du texte |
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte() ' ' Cette macro force les cellules de la sélection au format texte en ajoutant
le caractère ' en début de chaine. ' ' Dim ChMess As String Dim ChTitle As String Dim Vide As String Vide = "" ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte
?"
ChTitle = "Format Texte" If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False Dim C As Variant For Each C In Selection If IsEmpty(C) Or IsNull(C) Or C = Vide Then 'On sort si la cellule est vide Else C.Formula = "'" & C End If Next C Application.ScreenUpdating = True End If End Sub
Rebonjour,
Vérifié même en plaçant une formule référant à la plage
pas de boucle sans fin!
"docm" a exprimé ainsi:
Ta macro provoque une bouche sans fin.
A moins d'un lapsus évoquant quelque appel sans objet
;-) lol
"LeSteph" <lecocosteph@frite.fr> a écrit dans le message de
news:413aa901$0$8246$636a15ce@news.free.fr...
Bonjour Docm,
Au départ je ne préconnisai pas de macro car
FF a exprimé:>>Je ne suis pas très "pro" dans l'utilisation d'excel
J'ai écrit celle-ci à la volée en évennement Worksheet_change
(car celle gentillement proposée par Bruno me semble un peu plus
lourde en opérations que de mettre une quote devant un chiffre) .
Sinon à l'instant l'ayant testée (xl2003) elle ne génère pas une telle
boucle.
Peux-tu préciser dans quelle circonstances tu obtiens cette boucle?
Ainsi je vais pouvoir rectifier (si tant est que) FF souhaite une macro...
Merci pour ta prévenance ,en attendant je vais revérifier, si calculs sur
Target etc...
Amicalement
LeSteph
"docm" <docmarti@spamcolba.net> a écrit dans le message de
news:OAnOLXukEHA.1348@TK2MSFTNGP15.phx.gbl...
Bonjour LeSteph
Ta macro provoque une bouche sans fin.
"LeSteph" <lecocosteph@frite.fr> wrote in message
news:OeqEuYnkEHA.272@tk2msftngp13.phx.gbl...
Bonjour,
Bonne idée mais en VBA on peut faire plus direct
dans le code de la feuille:
'***
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
With Target.Cells
If IsNumeric(.Value) Then
.Value = "'" & .Value
End If
End With
End If
End Sub
'***
' ;-)
'leSteph
"bruno" <bruno.truc.maria@libertysurf.truc.fr> a écrit dans le message
de
news:41399d52$0$31368$636a15ce@news.free.fr...
"LeSteph" <lecocosteph@frite.fr> a écrit dans le message de
news:413961cc$0$31369$636a15ce@news.free.fr...
| Bonjour FF,
|
| Pour traiter globalement:
| selectionner la colonne données convertir...Suivant... texte..
|
| Mais cela ne résoud pas ton pb lors de la saisie:
| tu peux mettre une quote ' devant le nombre
| ainsi: '12 sera considéré comme du texte
|
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte()
'
' Cette macro force les cellules de la sélection au format texte en
ajoutant
le caractère ' en début de chaine.
'
'
Dim ChMess As String
Dim ChTitle As String
Dim Vide As String
Vide = ""
ChMess = "Voulez-vous forcer les cellules Sélectionnées en format
texte
?"
ChTitle = "Format Texte"
If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False
Dim C As Variant
For Each C In Selection
If IsEmpty(C) Or IsNull(C) Or C = Vide Then
'On sort si la cellule est vide
Else
C.Formula = "'" & C
End If
Next C
Application.ScreenUpdating = True
End If
End Sub
Rebonjour, Vérifié même en plaçant une formule référant à la plage pas de boucle sans fin!
"docm" a exprimé ainsi:
Ta macro provoque une bouche sans fin.
A moins d'un lapsus évoquant quelque appel sans objet
;-) lol
"LeSteph" a écrit dans le message de news:413aa901$0$8246$
Bonjour Docm, Au départ je ne préconnisai pas de macro car FF a exprimé:>>Je ne suis pas très "pro" dans l'utilisation d'excel J'ai écrit celle-ci à la volée en évennement Worksheet_change (car celle gentillement proposée par Bruno me semble un peu plus lourde en opérations que de mettre une quote devant un chiffre) .
Sinon à l'instant l'ayant testée (xl2003) elle ne génère pas une telle boucle.
Peux-tu préciser dans quelle circonstances tu obtiens cette boucle? Ainsi je vais pouvoir rectifier (si tant est que) FF souhaite une macro... Merci pour ta prévenance ,en attendant je vais revérifier, si calculs sur Target etc...
Amicalement
LeSteph
"docm" a écrit dans le message de news:
Bonjour LeSteph
Ta macro provoque une bouche sans fin.
"LeSteph" wrote in message news:
Bonjour, Bonne idée mais en VBA on peut faire plus direct dans le code de la feuille: '*** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then With Target.Cells If IsNumeric(.Value) Then .Value = "'" & .Value End If End With End If End Sub '*** ' ;-) 'leSteph
"bruno" a écrit dans le message de
news:41399d52$0$31368$
"LeSteph" a écrit dans le message de news:413961cc$0$31369$ | Bonjour FF, | | Pour traiter globalement: | selectionner la colonne données convertir...Suivant... texte.. | | Mais cela ne résoud pas ton pb lors de la saisie: | tu peux mettre une quote ' devant le nombre | ainsi: '12 sera considéré comme du texte |
Pour aller plus vite, tu peux utiliser une macro :
Sub Format_Texte() ' ' Cette macro force les cellules de la sélection au format texte en ajoutant
le caractère ' en début de chaine. ' ' Dim ChMess As String Dim ChTitle As String Dim Vide As String Vide = "" ChMess = "Voulez-vous forcer les cellules Sélectionnées en format texte
?"
ChTitle = "Format Texte" If MsgBox(ChMess, vbYesNo, ChTitle) = vbYes Then
Application.ScreenUpdating = False Dim C As Variant For Each C In Selection If IsEmpty(C) Or IsNull(C) Or C = Vide Then 'On sort si la cellule est vide Else C.Formula = "'" & C End If Next C Application.ScreenUpdating = True End If End Sub
AV
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
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
.......
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
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
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
.......
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 .......