Traitement, découpage d'une Chaîne de caractere en 3 champs
rdomjan
Messages postés2Date d'inscriptionmardi 2 novembre 2004StatutMembreDernière intervention 3 novembre 2004
-
2 nov. 2004 à 13:30
rdomjan
Messages postés2Date d'inscriptionmardi 2 novembre 2004StatutMembreDernière intervention 3 novembre 2004
-
3 nov. 2004 à 16:51
Bonjour
Application access 2000 et VBA
J'ai une chaine de caractere dans un champs allant jusqu'a 240 caractere, que je doit couper après un espace avec au maximum 80 caractere dans 3 nouveau champs. le nombre de nouveau champs dépend bien sur du nombre initial de caractere.
Merci car je seche un peu.....
pour me contacter rdomjan @ hospvd point ch
salutations
A voir également:
Traitement, découpage d'une Chaîne de caractere en 3 champs
galopin01
Messages postés133Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention14 octobre 20111 3 nov. 2004 à 15:11
Bonjour,
Malheureusement, je ne possède pas Access sur ce poste de W par contre j'ai une macro Excel qui fait ça :
Si le coeur t'en dit et ton W le justifie tu peux toujours exporter tes données dans Excel, faire le traitement et réimporter tes données ensuite...
Remarque :
Il n'est pas possible de découper une chaîne comportant exactement 240 caractères en 3x80 avec une coupure sur espace
En effet le premier champs fera peut-être 75 caractères
le 2ème également, et le 3ème = 88 caractères
Dans ce cas la macro tronque la fin et signale la coupure par un "+" en fin de chaine
Sub Test()
SText = [A1].Value
If Len(SText) > 80 Then
iLS = Len(SText)
iPE = InStrRev(SText, " ", 80)
SText1 = Right(SText, iLS - iPE)
SText = Left(SText, iPE - 1)
End If
[B1].Value = SText
SText = SText1
If Len(SText) > 80 Then
iLS = Len(SText)
iPE = InStrRev(SText, " ", 80)
SText1 = Right(SText, iLS - iPE)
SText = Left(SText, iPE - 1)
End If
[C1].Value = SText
SText = SText1
If Len(SText) > 80 Then
SText = Right(SText, iLS - iPE)
[D1].Value = Left(SText, 79) & "+"
Else
[D1].Value = SText
End If
End Sub