Tu dis: "et ce signe correspond a quoi sur le clavier ?"
Pour le signe on peut l'avoir avec les codes ascii (il me semble de mémoire > 127 et < 256 ?), mais il n'y a aucune touche (des 3 claviers) qui correspondent directement... ---------------------
"lou" a écrit dans le message de news: 43303e53$0$10960$ | bonjour | | je reçois des data via une balance connectée au port com | le test effectué sur le HYPER TERMINAL fourni avec WIN XP me donne ceci: | | " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 | kg T D" | | le test effectué avec un form +champ text multi ligne me renvoi ceci | (fait avec vb6) | | " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 | kgTD" | | certains espaces vides sont remplis avec ce carré ( ) je ne comprends | pas pourquoi ? | et ce signe correspond a quoi sur le clavier ? | | UN GRAND MERCI | | |
Bonsoir,
Tu dis: "et ce signe correspond a quoi sur le clavier ?"
Pour le signe on peut l'avoir avec les codes ascii (il me semble de
mémoire > 127 et < 256 ?), mais il n'y a aucune touche (des 3 claviers) qui
correspondent directement...
---------------------
"lou" <colluluigi@skynet.be> a écrit dans le message de news:
43303e53$0$10960$ba620e4c@news.skynet.be...
| bonjour
|
| je reçois des data via une balance connectée au port com
| le test effectué sur le HYPER TERMINAL fourni avec WIN XP me donne ceci:
|
| " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326
| kg T D"
|
| le test effectué avec un form +champ text multi ligne me renvoi ceci
| (fait avec vb6)
|
| " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326
| kgTD"
|
| certains espaces vides sont remplis avec ce carré ( ) je ne comprends
| pas pourquoi ?
| et ce signe correspond a quoi sur le clavier ?
|
| UN GRAND MERCI
|
|
|
Tu dis: "et ce signe correspond a quoi sur le clavier ?"
Pour le signe on peut l'avoir avec les codes ascii (il me semble de mémoire > 127 et < 256 ?), mais il n'y a aucune touche (des 3 claviers) qui correspondent directement... ---------------------
"lou" a écrit dans le message de news: 43303e53$0$10960$ | bonjour | | je reçois des data via une balance connectée au port com | le test effectué sur le HYPER TERMINAL fourni avec WIN XP me donne ceci: | | " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 | kg T D" | | le test effectué avec un form +champ text multi ligne me renvoi ceci | (fait avec vb6) | | " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 | kgTD" | | certains espaces vides sont remplis avec ce carré ( ) je ne comprends | pas pourquoi ? | et ce signe correspond a quoi sur le clavier ? | | UN GRAND MERCI | | |
lou a écrit :
bonjour
je reçois des data via une balance connectée au port com le test effectué sur le HYPER TERMINAL fourni avec WIN XP me donne ceci:
" NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 kg T D"
le test effectué avec un form +champ text multi ligne me renvoi ceci (fait avec vb6)
" NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 kgTD"
certains espaces vides sont remplis avec ce carré ( ) je ne comprends pas pourquoi ? et ce signe correspond a quoi sur le clavier ?
UN GRAND MERCI
Bonjour,
Test la valeur avec ASC() je pense qu'il s'agit de CR (carriage return) ou LF (line feed), respectivement chr(13), chr(10) chr étant la fonction inverse de asc()
Christophe
lou a écrit :
bonjour
je reçois des data via une balance connectée au port com
le test effectué sur le HYPER TERMINAL fourni avec WIN XP me donne ceci:
" NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326
kg T D"
le test effectué avec un form +champ text multi ligne me renvoi ceci
(fait avec vb6)
" NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326
kgTD"
certains espaces vides sont remplis avec ce carré ( ) je ne comprends
pas pourquoi ?
et ce signe correspond a quoi sur le clavier ?
UN GRAND MERCI
Bonjour,
Test la valeur avec ASC() je pense qu'il s'agit de CR (carriage return)
ou LF (line feed), respectivement chr(13), chr(10)
chr étant la fonction inverse de asc()
je reçois des data via une balance connectée au port com le test effectué sur le HYPER TERMINAL fourni avec WIN XP me donne ceci:
" NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 kg T D"
le test effectué avec un form +champ text multi ligne me renvoi ceci (fait avec vb6)
" NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 kgTD"
certains espaces vides sont remplis avec ce carré ( ) je ne comprends pas pourquoi ? et ce signe correspond a quoi sur le clavier ?
UN GRAND MERCI
Bonjour,
Test la valeur avec ASC() je pense qu'il s'agit de CR (carriage return) ou LF (line feed), respectivement chr(13), chr(10) chr étant la fonction inverse de asc()
Christophe
X
Le 1ere caractère à tester, si ça t'avance ???
Dim octet As String * 1 Dim ascii As Integer octet = Mid(text1, 1, 1) ascii = Asc(octet) MsgBox ascii --------------
"X" <.> a écrit dans le message de news: % | Bonsoir, | | Tu dis: "et ce signe correspond a quoi sur le clavier ?" | | Pour le signe on peut l'avoir avec les codes ascii (il me semble de | mémoire > 127 et < 256 ?), mais il n'y a aucune touche (des 3 claviers) qui | correspondent directement... | --------------------- | | | | | | "lou" a écrit dans le message de news: | 43303e53$0$10960$ || bonjour || || je reçois des data via une balance connectée au port com || le test effectué sur le HYPER TERMINAL fourni avec WIN XP me donne ceci: || || " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 || kg T D" || || le test effectué avec un form +champ text multi ligne me renvoi ceci || (fait avec vb6) || || " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 || kgTD" || || certains espaces vides sont remplis avec ce carré ( ) je ne comprends || pas pourquoi ? || et ce signe correspond a quoi sur le clavier ? || || UN GRAND MERCI || || || | |
Le 1ere caractère à tester, si ça t'avance ???
Dim octet As String * 1
Dim ascii As Integer
octet = Mid(text1, 1, 1)
ascii = Asc(octet)
MsgBox ascii
--------------
"X" <.> a écrit dans le message de news:
%23uznnkgvFHA.3864@TK2MSFTNGP12.phx.gbl...
| Bonsoir,
|
| Tu dis: "et ce signe correspond a quoi sur le clavier ?"
|
| Pour le signe on peut l'avoir avec les codes ascii (il me semble de
| mémoire > 127 et < 256 ?), mais il n'y a aucune touche (des 3 claviers)
qui
| correspondent directement...
| ---------------------
|
|
|
|
|
| "lou" <colluluigi@skynet.be> a écrit dans le message de news:
| 43303e53$0$10960$ba620e4c@news.skynet.be...
|| bonjour
||
|| je reçois des data via une balance connectée au port com
|| le test effectué sur le HYPER TERMINAL fourni avec WIN XP me donne ceci:
||
|| " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET
1326
|| kg T D"
||
|| le test effectué avec un form +champ text multi ligne me renvoi ceci
|| (fait avec vb6)
||
|| " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET
1326
|| kgTD"
||
|| certains espaces vides sont remplis avec ce carré ( ) je ne
comprends
|| pas pourquoi ?
|| et ce signe correspond a quoi sur le clavier ?
||
|| UN GRAND MERCI
||
||
||
|
|
Dim octet As String * 1 Dim ascii As Integer octet = Mid(text1, 1, 1) ascii = Asc(octet) MsgBox ascii --------------
"X" <.> a écrit dans le message de news: % | Bonsoir, | | Tu dis: "et ce signe correspond a quoi sur le clavier ?" | | Pour le signe on peut l'avoir avec les codes ascii (il me semble de | mémoire > 127 et < 256 ?), mais il n'y a aucune touche (des 3 claviers) qui | correspondent directement... | --------------------- | | | | | | "lou" a écrit dans le message de news: | 43303e53$0$10960$ || bonjour || || je reçois des data via une balance connectée au port com || le test effectué sur le HYPER TERMINAL fourni avec WIN XP me donne ceci: || || " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 || kg T D" || || le test effectué avec un form +champ text multi ligne me renvoi ceci || (fait avec vb6) || || " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 || kgTD" || || certains espaces vides sont remplis avec ce carré ( ) je ne comprends || pas pourquoi ? || et ce signe correspond a quoi sur le clavier ? || || UN GRAND MERCI || || || | |
Fred
Dans : news:43303e53$0$10960$, lou disait :
bonjour
Bonsoir,
le test effectué avec un form +champ text multi ligne me renvoi ceci (fait avec vb6)
" NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 kgTD"
Plutôt que de mettre ta chaîne (appelons la «trame») dans le champ texte, met plutôt ToHex(trame) où ToHex est la fonction qui suit. Ainsi on verra clairement les codes des caractères que tu reçois. Si tu as d'autres occasions de gérer des communications avec des matériels tels que ta balance, c'est la première chose à faire. L'affichage du texte ne montre pas tout. Ou montre des choses bizarres :-)
8<------------------ Function ToHex(s As String) Dim h As String Dim i As Integer For i = 1 To Len(s) h = h & Right$("0" & _ Hex$(Asc(Mid(s, i, 1))), 2) _ & " " Next i ToHex = h End Function 8<---------------------
Tu peux faire un copier-coller du bout de code. Les lignes sont courtes et ne devraient pas avoir été coupées.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans : news:43303e53$0$10960$ba620e4c@news.skynet.be,
lou disait :
bonjour
Bonsoir,
le test effectué avec un form +champ text multi ligne me renvoi ceci
(fait avec vb6)
" NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET
1326 kgTD"
Plutôt que de mettre ta chaîne (appelons la «trame») dans le champ
texte, met plutôt ToHex(trame) où ToHex est la fonction qui suit. Ainsi
on verra clairement les codes des caractères que tu reçois. Si tu as
d'autres occasions de gérer des communications avec des matériels tels
que ta balance, c'est la première chose à faire. L'affichage du texte ne
montre pas tout. Ou montre des choses bizarres :-)
8<------------------
Function ToHex(s As String)
Dim h As String
Dim i As Integer
For i = 1 To Len(s)
h = h & Right$("0" & _
Hex$(Asc(Mid(s, i, 1))), 2) _
& " "
Next i
ToHex = h
End Function
8<---------------------
Tu peux faire un copier-coller du bout de code. Les lignes sont courtes
et ne devraient pas avoir été coupées.
le test effectué avec un form +champ text multi ligne me renvoi ceci (fait avec vb6)
" NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET 1326 kgTD"
Plutôt que de mettre ta chaîne (appelons la «trame») dans le champ texte, met plutôt ToHex(trame) où ToHex est la fonction qui suit. Ainsi on verra clairement les codes des caractères que tu reçois. Si tu as d'autres occasions de gérer des communications avec des matériels tels que ta balance, c'est la première chose à faire. L'affichage du texte ne montre pas tout. Ou montre des choses bizarres :-)
8<------------------ Function ToHex(s As String) Dim h As String Dim i As Integer For i = 1 To Len(s) h = h & Right$("0" & _ Hex$(Asc(Mid(s, i, 1))), 2) _ & " " Next i ToHex = h End Function 8<---------------------
Tu peux faire un copier-coller du bout de code. Les lignes sont courtes et ne devraient pas avoir été coupées.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
lou
merci a tous et en particulier a fred ta fontion m 'a beaucoup aidé ceci dit en passant et sans abuser j'essaie de trouver une fontion qui suprime tout ce qui est texte dans un champ encore merci pour votre aide
"Fred" a écrit dans le message de news: #
Dans : news:43303e53$0$10960$, lou disait : > bonjour
Bonsoir,
> le test effectué avec un form +champ text multi ligne me renvoi ceci > (fait avec vb6) > > " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET > 1326 kgTD"
Plutôt que de mettre ta chaîne (appelons la «trame») dans le champ texte, met plutôt ToHex(trame) où ToHex est la fonction qui suit. Ainsi on verra clairement les codes des caractères que tu reçois. Si tu as d'autres occasions de gérer des communications avec des matériels tels que ta balance, c'est la première chose à faire. L'affichage du texte ne montre pas tout. Ou montre des choses bizarres :-)
8<------------------ Function ToHex(s As String) Dim h As String Dim i As Integer For i = 1 To Len(s) h = h & Right$("0" & _ Hex$(Asc(Mid(s, i, 1))), 2) _ & " " Next i ToHex = h End Function 8<---------------------
Tu peux faire un copier-coller du bout de code. Les lignes sont courtes et ne devraient pas avoir été coupées.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
merci a tous et en particulier a fred ta fontion m 'a beaucoup aidé
ceci dit en passant et sans abuser j'essaie de trouver une fontion qui
suprime tout ce qui est texte dans un champ
encore merci pour votre aide
"Fred" <foleide@libre.france> a écrit dans le message de news:
#fgBNLivFHA.2924@TK2MSFTNGP15.phx.gbl...
Dans : news:43303e53$0$10960$ba620e4c@news.skynet.be,
lou disait :
> bonjour
Bonsoir,
> le test effectué avec un form +champ text multi ligne me renvoi ceci
> (fait avec vb6)
>
> " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET
> 1326 kgTD"
Plutôt que de mettre ta chaîne (appelons la «trame») dans le champ
texte, met plutôt ToHex(trame) où ToHex est la fonction qui suit. Ainsi
on verra clairement les codes des caractères que tu reçois. Si tu as
d'autres occasions de gérer des communications avec des matériels tels
que ta balance, c'est la première chose à faire. L'affichage du texte ne
montre pas tout. Ou montre des choses bizarres :-)
8<------------------
Function ToHex(s As String)
Dim h As String
Dim i As Integer
For i = 1 To Len(s)
h = h & Right$("0" & _
Hex$(Asc(Mid(s, i, 1))), 2) _
& " "
Next i
ToHex = h
End Function
8<---------------------
Tu peux faire un copier-coller du bout de code. Les lignes sont courtes
et ne devraient pas avoir été coupées.
merci a tous et en particulier a fred ta fontion m 'a beaucoup aidé ceci dit en passant et sans abuser j'essaie de trouver une fontion qui suprime tout ce qui est texte dans un champ encore merci pour votre aide
"Fred" a écrit dans le message de news: #
Dans : news:43303e53$0$10960$, lou disait : > bonjour
Bonsoir,
> le test effectué avec un form +champ text multi ligne me renvoi ceci > (fait avec vb6) > > " NUMERO PESEE 00000001 BRUT 1326 kg TARE 0 kg NET > 1326 kgTD"
Plutôt que de mettre ta chaîne (appelons la «trame») dans le champ texte, met plutôt ToHex(trame) où ToHex est la fonction qui suit. Ainsi on verra clairement les codes des caractères que tu reçois. Si tu as d'autres occasions de gérer des communications avec des matériels tels que ta balance, c'est la première chose à faire. L'affichage du texte ne montre pas tout. Ou montre des choses bizarres :-)
8<------------------ Function ToHex(s As String) Dim h As String Dim i As Integer For i = 1 To Len(s) h = h & Right$("0" & _ Hex$(Asc(Mid(s, i, 1))), 2) _ & " " Next i ToHex = h End Function 8<---------------------
Tu peux faire un copier-coller du bout de code. Les lignes sont courtes et ne devraient pas avoir été coupées.
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Fred
"lou" a écrit dans le message de news:4330993b$0$10960$
merci a tous et en particulier a fred ta fontion m 'a beaucoup aidé ceci dit en passant et sans abuser j'essaie de trouver une fontion qui suprime tout ce qui est texte dans un champ encore merci pour votre aide
Peux-tu préciser ta question ? Avec un exemple, et peut-être l'équivalent hexa (fonction ToHex) de ton champ. Veux-tu dire que tu ne souhaite garder que les caractères représentant des chiffres ?
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
"lou" <colluluigi@skynet.be> a écrit dans le message de
news:4330993b$0$10960$ba620e4c@news.skynet.be...
merci a tous et en particulier a fred ta fontion m 'a beaucoup aidé
ceci dit en passant et sans abuser j'essaie de trouver une fontion qui
suprime tout ce qui est texte dans un champ
encore merci pour votre aide
Peux-tu préciser ta question ? Avec un exemple, et peut-être
l'équivalent hexa (fonction ToHex) de ton champ.
Veux-tu dire que tu ne souhaite garder que les caractères représentant
des chiffres ?
"lou" a écrit dans le message de news:4330993b$0$10960$
merci a tous et en particulier a fred ta fontion m 'a beaucoup aidé ceci dit en passant et sans abuser j'essaie de trouver une fontion qui suprime tout ce qui est texte dans un champ encore merci pour votre aide
Peux-tu préciser ta question ? Avec un exemple, et peut-être l'équivalent hexa (fonction ToHex) de ton champ. Veux-tu dire que tu ne souhaite garder que les caractères représentant des chiffres ?
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
lou
bonjour oui n effet je ne veux garder que ce qui est numerique de 0 a 9 du genre si c'est 0 tu laisses si c'est 1 tu laisses etc etc pour le moment j'emploie REPLACE mais c'est fastidieux le champ qui est assez long peux contenir +-200 mots , je voudrais si c'est possible nettoyer tout en un clic merci
"Fred" a écrit dans le message de news:
"lou" a écrit dans le message de news:4330993b$0$10960$
> merci a tous et en particulier a fred ta fontion m 'a beaucoup aidé > ceci dit en passant et sans abuser j'essaie de trouver une fontion qui > suprime tout ce qui est texte dans un champ > encore merci pour votre aide
Peux-tu préciser ta question ? Avec un exemple, et peut-être l'équivalent hexa (fonction ToHex) de ton champ. Veux-tu dire que tu ne souhaite garder que les caractères représentant des chiffres ?
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
bonjour
oui n effet je ne veux garder que ce qui est numerique
de 0 a 9
du genre si c'est 0 tu laisses si c'est 1 tu laisses etc etc
pour le moment j'emploie REPLACE
mais c'est fastidieux le champ qui est assez long peux contenir +-200 mots
, je voudrais si c'est possible nettoyer tout en un clic
merci
"Fred" <foleide@libre.france> a écrit dans le message de news:
euvziimvFHA.1132@TK2MSFTNGP10.phx.gbl...
"lou" <colluluigi@skynet.be> a écrit dans le message de
news:4330993b$0$10960$ba620e4c@news.skynet.be...
> merci a tous et en particulier a fred ta fontion m 'a beaucoup aidé
> ceci dit en passant et sans abuser j'essaie de trouver une fontion qui
> suprime tout ce qui est texte dans un champ
> encore merci pour votre aide
Peux-tu préciser ta question ? Avec un exemple, et peut-être
l'équivalent hexa (fonction ToHex) de ton champ.
Veux-tu dire que tu ne souhaite garder que les caractères représentant
des chiffres ?
bonjour oui n effet je ne veux garder que ce qui est numerique de 0 a 9 du genre si c'est 0 tu laisses si c'est 1 tu laisses etc etc pour le moment j'emploie REPLACE mais c'est fastidieux le champ qui est assez long peux contenir +-200 mots , je voudrais si c'est possible nettoyer tout en un clic merci
"Fred" a écrit dans le message de news:
"lou" a écrit dans le message de news:4330993b$0$10960$
> merci a tous et en particulier a fred ta fontion m 'a beaucoup aidé > ceci dit en passant et sans abuser j'essaie de trouver une fontion qui > suprime tout ce qui est texte dans un champ > encore merci pour votre aide
Peux-tu préciser ta question ? Avec un exemple, et peut-être l'équivalent hexa (fonction ToHex) de ton champ. Veux-tu dire que tu ne souhaite garder que les caractères représentant des chiffres ?
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
driss hanib
Lou
voici une fonction qui t'extrait que les chiffre en comparant chaque caractère ascii aux chiffres Function ExtraitNum(MaChaine As String) As String Dim Car As String Dim NouvChaine As String NouvChaine = vbNullString For I = 1 To Len(MaChaine) ' extraction de chaque caractère Car = Mid$(MaChaine, I, 1) Select Case Asc(Car) Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 nouchaine = NouvChaine = Car Case Else End Select Next ExtraitNum = NouvChaine End Function
Driss
"lou" a écrit dans le message de news: 4330f740$0$10952$
bonjour oui n effet je ne veux garder que ce qui est numerique de 0 a 9 du genre si c'est 0 tu laisses si c'est 1 tu laisses etc etc pour le moment j'emploie REPLACE mais c'est fastidieux le champ qui est assez long peux contenir +-200 mots , je voudrais si c'est possible nettoyer tout en un clic merci
"Fred" a écrit dans le message de news:
"lou" a écrit dans le message de news:4330993b$0$10960$
> merci a tous et en particulier a fred ta fontion m 'a beaucoup aidé > ceci dit en passant et sans abuser j'essaie de trouver une fontion qui > suprime tout ce qui est texte dans un champ > encore merci pour votre aide
Peux-tu préciser ta question ? Avec un exemple, et peut-être l'équivalent hexa (fonction ToHex) de ton champ. Veux-tu dire que tu ne souhaite garder que les caractères représentant des chiffres ?
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Lou
voici une fonction qui t'extrait que les chiffre en comparant chaque
caractère ascii aux chiffres
Function ExtraitNum(MaChaine As String) As String
Dim Car As String
Dim NouvChaine As String
NouvChaine = vbNullString
For I = 1 To Len(MaChaine)
' extraction de chaque caractère
Car = Mid$(MaChaine, I, 1)
Select Case Asc(Car)
Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57
nouchaine = NouvChaine = Car
Case Else
End Select
Next
ExtraitNum = NouvChaine
End Function
Driss
"lou" <colluluigi@skynet.be> a écrit dans le message de news:
4330f740$0$10952$ba620e4c@news.skynet.be...
bonjour
oui n effet je ne veux garder que ce qui est numerique
de 0 a 9
du genre si c'est 0 tu laisses si c'est 1 tu laisses etc etc
pour le moment j'emploie REPLACE
mais c'est fastidieux le champ qui est assez long peux contenir +-200
mots
, je voudrais si c'est possible nettoyer tout en un clic
merci
"Fred" <foleide@libre.france> a écrit dans le message de news:
euvziimvFHA.1132@TK2MSFTNGP10.phx.gbl...
"lou" <colluluigi@skynet.be> a écrit dans le message de
news:4330993b$0$10960$ba620e4c@news.skynet.be...
> merci a tous et en particulier a fred ta fontion m 'a beaucoup aidé
> ceci dit en passant et sans abuser j'essaie de trouver une fontion qui
> suprime tout ce qui est texte dans un champ
> encore merci pour votre aide
Peux-tu préciser ta question ? Avec un exemple, et peut-être
l'équivalent hexa (fonction ToHex) de ton champ.
Veux-tu dire que tu ne souhaite garder que les caractères représentant
des chiffres ?
voici une fonction qui t'extrait que les chiffre en comparant chaque caractère ascii aux chiffres Function ExtraitNum(MaChaine As String) As String Dim Car As String Dim NouvChaine As String NouvChaine = vbNullString For I = 1 To Len(MaChaine) ' extraction de chaque caractère Car = Mid$(MaChaine, I, 1) Select Case Asc(Car) Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 nouchaine = NouvChaine = Car Case Else End Select Next ExtraitNum = NouvChaine End Function
Driss
"lou" a écrit dans le message de news: 4330f740$0$10952$
bonjour oui n effet je ne veux garder que ce qui est numerique de 0 a 9 du genre si c'est 0 tu laisses si c'est 1 tu laisses etc etc pour le moment j'emploie REPLACE mais c'est fastidieux le champ qui est assez long peux contenir +-200 mots , je voudrais si c'est possible nettoyer tout en un clic merci
"Fred" a écrit dans le message de news:
"lou" a écrit dans le message de news:4330993b$0$10960$
> merci a tous et en particulier a fred ta fontion m 'a beaucoup aidé > ceci dit en passant et sans abuser j'essaie de trouver une fontion qui > suprime tout ce qui est texte dans un champ > encore merci pour votre aide
Peux-tu préciser ta question ? Avec un exemple, et peut-être l'équivalent hexa (fonction ToHex) de ton champ. Veux-tu dire que tu ne souhaite garder que les caractères représentant des chiffres ?
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Fred
Dans le message:, driss hanib écrit:
Lou
voici une fonction qui t'extrait que les chiffre en comparant chaque caractère ascii aux chiffres Function ExtraitNum(MaChaine As String) As String Dim Car As String Dim NouvChaine As String NouvChaine = vbNullString For I = 1 To Len(MaChaine) ' extraction de chaque caractère Car = Mid$(MaChaine, I, 1) Select Case Asc(Car) Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 nouchaine = NouvChaine = Car Case Else End Select Next ExtraitNum = NouvChaine End Function
Bonjour Driss et lou
Je propose la variante suivante car avec ce programme, les nombres seront accolés et s'ils ne sont pas formatés suivant des longueurs prédéfinies, ce sera difficile de faire le tri. La fonction ci-dessous renvoie un tableau de chaînes. Il y a possibilité d'avoir des séparateurs décimaux (j'ai mis le point par défaut mais cela peut être changé en virgule).
Function ExtraireNombres(s As String) As String() Dim tmp As String Dim res As String Dim car As String Dim dercar As String tmp = s dercar = " " While Len(tmp) <> 0 car = Left$(tmp, 1) If (car >= "0" And car <= "9") Or car = "." Then res = res & car dercar = car Else If dercar <> " " Then res = res & " " dercar = " " End If End If tmp = Mid$(tmp, 2) Wend ExtraireNombres = Split(RTrim$(res), " ") End Function
Sub test() Dim s As String Dim a() As String Dim i As Integer s = " 124.5kg 45 toto 65titi" a = ExtraireNombres(s) For i = LBound(a) To UBound(a) MsgBox a(i) Next End Sub
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Dans le message:Ow95ugnvFHA.252@TK2MSFTNGP09.phx.gbl,
driss hanib écrit:
Lou
voici une fonction qui t'extrait que les chiffre en comparant chaque
caractère ascii aux chiffres
Function ExtraitNum(MaChaine As String) As String
Dim Car As String
Dim NouvChaine As String
NouvChaine = vbNullString
For I = 1 To Len(MaChaine)
' extraction de chaque caractère
Car = Mid$(MaChaine, I, 1)
Select Case Asc(Car)
Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57
nouchaine = NouvChaine = Car
Case Else
End Select
Next
ExtraitNum = NouvChaine
End Function
Bonjour Driss et lou
Je propose la variante suivante car avec ce programme, les nombres
seront accolés et s'ils ne sont pas formatés suivant des longueurs
prédéfinies, ce sera difficile de faire le tri.
La fonction ci-dessous renvoie un tableau de chaînes.
Il y a possibilité d'avoir des séparateurs décimaux (j'ai mis le point
par défaut mais cela peut être changé en virgule).
Function ExtraireNombres(s As String) As String()
Dim tmp As String
Dim res As String
Dim car As String
Dim dercar As String
tmp = s
dercar = " "
While Len(tmp) <> 0
car = Left$(tmp, 1)
If (car >= "0" And car <= "9") Or car = "." Then
res = res & car
dercar = car
Else
If dercar <> " " Then
res = res & " "
dercar = " "
End If
End If
tmp = Mid$(tmp, 2)
Wend
ExtraireNombres = Split(RTrim$(res), " ")
End Function
Sub test()
Dim s As String
Dim a() As String
Dim i As Integer
s = " 124.5kg 45 toto 65titi"
a = ExtraireNombres(s)
For i = LBound(a) To UBound(a)
MsgBox a(i)
Next
End Sub
voici une fonction qui t'extrait que les chiffre en comparant chaque caractère ascii aux chiffres Function ExtraitNum(MaChaine As String) As String Dim Car As String Dim NouvChaine As String NouvChaine = vbNullString For I = 1 To Len(MaChaine) ' extraction de chaque caractère Car = Mid$(MaChaine, I, 1) Select Case Asc(Car) Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 nouchaine = NouvChaine = Car Case Else End Select Next ExtraitNum = NouvChaine End Function
Bonjour Driss et lou
Je propose la variante suivante car avec ce programme, les nombres seront accolés et s'ils ne sont pas formatés suivant des longueurs prédéfinies, ce sera difficile de faire le tri. La fonction ci-dessous renvoie un tableau de chaînes. Il y a possibilité d'avoir des séparateurs décimaux (j'ai mis le point par défaut mais cela peut être changé en virgule).
Function ExtraireNombres(s As String) As String() Dim tmp As String Dim res As String Dim car As String Dim dercar As String tmp = s dercar = " " While Len(tmp) <> 0 car = Left$(tmp, 1) If (car >= "0" And car <= "9") Or car = "." Then res = res & car dercar = car Else If dercar <> " " Then res = res & " " dercar = " " End If End If tmp = Mid$(tmp, 2) Wend ExtraireNombres = Split(RTrim$(res), " ") End Function
Sub test() Dim s As String Dim a() As String Dim i As Integer s = " 124.5kg 45 toto 65titi" a = ExtraireNombres(s) For i = LBound(a) To UBound(a) MsgBox a(i) Next End Sub
-- Fred http://www.cerbermail.com/?3kA6ftaCvT
Aski
Bonjour driss hanib,
Tu t'es vachement avancé en affirmant :
Lou
voici une fonction qui t'extrait que les chiffre en comparant chaque caractère ascii aux chiffres Function ExtraitNum(MaChaine As String) As String Dim Car As String Dim NouvChaine As String NouvChaine = vbNullString For I = 1 To Len(MaChaine) ' extraction de chaque caractère Car = Mid$(MaChaine, I, 1) Select Case Asc(Car) Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 nouchaine = NouvChaine = Car Case Else End Select Next ExtraitNum = NouvChaine End Function
OK, si les valeurs sont des entiers, mais il se pose le cas du point ou de la virgule décimale.
Cordialement
Aski
Bonjour driss hanib,
Tu t'es vachement avancé en affirmant :
Lou
voici une fonction qui t'extrait que les chiffre en comparant chaque
caractère ascii aux chiffres
Function ExtraitNum(MaChaine As String) As String
Dim Car As String
Dim NouvChaine As String
NouvChaine = vbNullString
For I = 1 To Len(MaChaine)
' extraction de chaque caractère
Car = Mid$(MaChaine, I, 1)
Select Case Asc(Car)
Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57
nouchaine = NouvChaine = Car
Case Else
End Select
Next
ExtraitNum = NouvChaine
End Function
OK, si les valeurs sont des entiers, mais il se pose le cas du point ou de
la virgule décimale.
voici une fonction qui t'extrait que les chiffre en comparant chaque caractère ascii aux chiffres Function ExtraitNum(MaChaine As String) As String Dim Car As String Dim NouvChaine As String NouvChaine = vbNullString For I = 1 To Len(MaChaine) ' extraction de chaque caractère Car = Mid$(MaChaine, I, 1) Select Case Asc(Car) Case 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 nouchaine = NouvChaine = Car Case Else End Select Next ExtraitNum = NouvChaine End Function
OK, si les valeurs sont des entiers, mais il se pose le cas du point ou de la virgule décimale.