Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Remplacer la fonction Split de VBA pour Word 97

2 réponses
Avatar
John Wayne
La fonction split qui permet de scinder une chaine alphanumérique pour
obtenir un tableau existe pour Word 2000, 2002 et 2003 mais pas pour la
version 97.
Je termine actuellement une macro qui utilise cette fonction. Si elle
fonctionne pour les versions 2000+, elle est inopéante avec Word 97.
Mon gros problème est celui des tableaux : peut-on les redimensionner à
la volée ?
L'instruction Redim toto(x) As ... ne marche pas car le nombre de
case x doit être un nombre fixé comme 15.
Donc ma stratégie qui consistait à scinder la chaine alphanumérique et à
remplir un tableau avec beaucoup de cases puis à le redimmensionner sur
celles remplies avec Redim Preserve toto(NombreCaseRemplies) ne
marche pas.

Bref, si quelqu'un avait une idée à me proposer...
Précision : la fonction doit renvoyer un tableau contenant autant
d'éléments que la chaine initiale...

Merci par avance !


Est-il possible de définir des tableaux dynamiques ?

2 réponses

Avatar
Hi !
-----Message d'origine-----
La fonction split qui permet de scinder une chaine
alphanumérique pour

obtenir un tableau existe pour Word 2000, 2002 et 2003
mais pas pour la

version 97.
Je termine actuellement une macro qui utilise cette
fonction. Si elle

fonctionne pour les versions 2000+, elle est inopéante
avec Word 97.

Mon gros problème est celui des tableaux : peut-on les
redimensionner à

la volée ?
L'instruction Redim toto(x) As ... ne marche pas
car le nombre de

case x doit être un nombre fixé comme 15.


Tu tires un peu trop vite pour moi,
redim marchait très bien en 97
Il me semble qu'il faut un
dim toto() au début
et on peut faire des redim toto(n) après.
J'ai pas compris ?
On parle bien de tableaux en VBA pas de tableaux sur une
document word?

Avatar
Pascal Engelmajer
salut,
Option Explicit
Sub split97(chaine As String, ByRef t())
Dim i As Long
chaine = Trim$(chaine)
Do Until Trim$(chaine) = ""
chaine = Trim$(chaine) & " "
t(i) = Trim$(Left$(chaine, InStr(chaine, " ")))
chaine = Mid$(chaine, InStr(chaine, " "))
i = i + 1
ReDim Preserve t(i)
Loop
End Sub
Sub test()
Dim i As Long
Dim t()
ReDim t(0)
split97 "ma chaine à découper au petits oignons", t
For i = 0 To UBound(t) - 1
Debug.Print ">" & t(i) & "<"
Next i
End Sub
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
http://www.ilyapa.net/baseExcel
"John Wayne" a écrit dans le message de news:
#
La fonction split qui permet de scinder une chaine alphanumérique pour
obtenir un tableau existe pour Word 2000, 2002 et 2003 mais pas pour la
version 97.
Je termine actuellement une macro qui utilise cette fonction. Si elle
fonctionne pour les versions 2000+, elle est inopéante avec Word 97.
Mon gros problème est celui des tableaux : peut-on les redimensionner à
la volée ?
L'instruction Redim toto(x) As ... ne marche pas car le nombre de
case x doit être un nombre fixé comme 15.
Donc ma stratégie qui consistait à scinder la chaine alphanumérique et à
remplir un tableau avec beaucoup de cases puis à le redimmensionner sur
celles remplies avec Redim Preserve toto(NombreCaseRemplies) ne
marche pas.

Bref, si quelqu'un avait une idée à me proposer...
Précision : la fonction doit renvoyer un tableau contenant autant
d'éléments que la chaine initiale...

Merci par avance !


Est-il possible de définir des tableaux dynamiques ?