Traitement, découpage d'une Chaîne de caractere en 3 champs

rdomjan Messages postés 2 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 3 novembre 2004 - 2 nov. 2004 à 13:30
rdomjan Messages postés 2 Date d'inscription mardi 2 novembre 2004 Statut Membre Derniè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

2 réponses

galopin01 Messages postés 133 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 14 octobre 2011 1
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

Cordialement.
0
rdomjan Messages postés 2 Date d'inscription mardi 2 novembre 2004 Statut Membre Dernière intervention 3 novembre 2004
3 nov. 2004 à 16:51
Salut

Merci pour ces infos, mais après avoir bien secher j'ai trouvé la solution... effectivemment j'ai limité a 230 caractere...

Salutations
0
Rejoignez-nous