Split d'une chaîne à une taille fixée [Résolu]

Messages postés
10
Date d'inscription
jeudi 15 février 2007
Dernière intervention
18 mars 2010
- - Dernière réponse : Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 18 mars 2010 à 16:51
Bonjour,

J'écris une procédure d'export des données en VBA sous Access vers un fichier plat.
Je souhaite exporter un champ Mémo en le taillant à une largeur fixe (72 caractères par ligne).
Pour cela je souhaite passer par un tableau de String.
1) Existe-t-il une fonction équivalente à Split ?

J'utilise Left et Mid mais je ne connais pas la dimension de mon Tableau.
2) Comment définir la variable "Dim Tableau() as String" ?
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
3
Merci
de tête, faire un truc genre :

Chaine = "     "

Dim Tableau() as String
Dim nCount As Long

nCount = Len(Chaine)\72
Redim Tableau(nCount-1)

For i = 0 to nCount -1
    Tableau(i) = Mid$(Chaine, 1+i*72, 72)
Next



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp

Merci Renfield 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de Renfield
Messages postés
10
Date d'inscription
jeudi 15 février 2007
Dernière intervention
18 mars 2010
3
Merci
Merci Renfield et bravo pour ta rapidité (en moins d'1/4 heure).
Je ne connaissais pas la l'instruction ReDim.
Sinon il n'est pas nécessaire de mettre "-1".
Voici la version finale :

Public Sub CoupeChaine(Chaine As String)
  Dim Tableau() as String
  Dim nCount As Long

  nCount = Len(Chaine)\72
  Redim Tableau(nCount)

  For i = 0 to nCount
    Tableau(i) = Mid$(Chaine, 1+i*72, 72)
  Next
End Sub

Merci cs_le cafard 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de cs_le cafard
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
-1 ? pour pas avoir la dernière case vide (une case en trop)

vu que l'index du tableau commence à 0
si tu veux par exemple 5 cases,

il te faut bien aller de 0 à 4

remet donc ce -1 si cela ne gène pas ton code (pas testé)

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.