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

cs_le cafard 10 Messages postés jeudi 15 février 2007Date d'inscription 18 mars 2010 Dernière intervention - 18 mars 2010 à 11:49 - Dernière réponse : Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention
- 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 

3 réponses

Répondre au sujet
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 18 mars 2010 à 12:03
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
cs_le cafard 10 Messages postés jeudi 15 février 2007Date d'inscription 18 mars 2010 Dernière intervention - 18 mars 2010 à 16:41
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_le cafard
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 18 mars 2010 à 16:51
0
Utile
-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.