OVH Cloud OVH Cloud

function

4 réponses
Avatar
Radix??
Bonjour,

Juste une question, Est il possible qu'une fonction VBA retourne un tableau?
(je n'ai jamais essayé)

Je précise:
Je souhaite batire une fonction dans laquelle je passerais un texte et un
entier.
Cette fonction me retourneras un tableau en coupant le texte au nombre de
caractères indiqué (entier).
Quelle doit être la definition de la fonction?

function toto (txt as string, lg as integer)as ???? string, array???

D'avance merci

Radix

4 réponses

Avatar
JB
Bonjour,


Voici un exemple de fonction matricielle qui retourne un tableau.

http://cjoint.com/?bnpLmk3Hu8

Function RechTous(champRech As Range, champRetour As Range, v)
Dim temp(1000, 1)
a = champRech 'pour performance
j = 0
For i = 1 To champRech.Count
If v = a(i, 1) Then
temp(j, 0) = champRetour(i)
j = j + 1
End If
Next i
RechTous = temp
End Function

Cordialement JB
Avatar
Ange Ounis
Quelle doit être la definition de la fonction?


As Variant

Pour le problème décrit, je ne vois pas, à moins que quelque chose m'échappe,
pourquoi tu aurais besoin d'un tableau :

Function Coupe(Txt, nbCar)
Coupe = Left(Txt, nbCar)
End Function

Et, en fait, je ne vois pas non plus pourquoi une fonction perso est nécessaire
dans ce cas. Les fonctions intégrées GAUCHE (Excel) et Left (VBA) font
excatement ce que tu demandes.

----------
Ange Ounis
----------

Bonjour,

Juste une question, Est il possible qu'une fonction VBA retourne un tableau?
(je n'ai jamais essayé)

Je précise:
Je souhaite batire une fonction dans laquelle je passerais un texte et un
entier.
Cette fonction me retourneras un tableau en coupant le texte au nombre de
caractères indiqué (entier).
Quelle doit être la definition de la fonction?

function toto (txt as string, lg as integer)as ???? string, array???

D'avance merci

Radix




Avatar
Radix??
Merci

En fait je ne connais pas la lg du texte et je souhaite le couper pour le
faire rentrer dans un formulaire et eventuellement inserer une ligne vide
Transformer un texte en (par exemple) 3lignes de textes et une ligne vide
soit un tableau de 4string dont le dernier est vide.

Radix


"Ange Ounis" a écrit dans le message de
news:
Quelle doit être la definition de la fonction?


As Variant

Pour le problème décrit, je ne vois pas, à moins que quelque chose
m'échappe,

pourquoi tu aurais besoin d'un tableau :

Function Coupe(Txt, nbCar)
Coupe = Left(Txt, nbCar)
End Function

Et, en fait, je ne vois pas non plus pourquoi une fonction perso est
nécessaire

dans ce cas. Les fonctions intégrées GAUCHE (Excel) et Left (VBA) font
excatement ce que tu demandes.

----------
Ange Ounis
----------

Bonjour,

Juste une question, Est il possible qu'une fonction VBA retourne un
tableau?


(je n'ai jamais essayé)

Je précise:
Je souhaite batire une fonction dans laquelle je passerais un texte et
un


entier.
Cette fonction me retourneras un tableau en coupant le texte au nombre
de


caractères indiqué (entier).
Quelle doit être la definition de la fonction?

function toto (txt as string, lg as integer)as ???? string, array???

D'avance merci

Radix






Avatar
Ange Ounis
C'est plus clair pour mon maigre neurone :)
Peut-être cette fonction peut-elle te servir de point de départ (Excel 2000 ou +
récent à cause de Split mais si besoin une version sans Split devrait être
possible) :

''''''''''''''''''''''''''''
Function Decoupe(Txt, NbLignes)
Dim i As Long, S As String, Marqueur As String, NbCar As Variant

Marqueur = Chr(164)
NbCar = Len(Txt) / NbLignes
If NbCar > Int(NbCar) Then NbCar = NbCar + 1
S = Left(Txt, NbCar)
For i = NbCar + 1 To Len(Txt) Step NbCar
S = S & Marqueur & Mid(Txt, i, NbCar)
Next
S = S & Marqueur
Decoupe = Split(S, Marqueur)

End Function

Sub essai()
Dim Arr, i As Long
Arr = Decoupe("Texte à découper", 3)
For i = LBound(Arr) To UBound(Arr)
MsgBox Arr(i)
Next i
End Sub
''''''''''''''''''''''''''''

----------
Ange Ounis
----------

Merci

En fait je ne connais pas la lg du texte et je souhaite le couper pour le
faire rentrer dans un formulaire et eventuellement inserer une ligne vide
Transformer un texte en (par exemple) 3lignes de textes et une ligne vide
soit un tableau de 4string dont le dernier est vide.

Radix


"Ange Ounis" a écrit dans le message de
news:

Quelle doit être la definition de la fonction?


As Variant

Pour le problème décrit, je ne vois pas, à moins que quelque chose


m'échappe,

pourquoi tu aurais besoin d'un tableau :

Function Coupe(Txt, nbCar)
Coupe = Left(Txt, nbCar)
End Function

Et, en fait, je ne vois pas non plus pourquoi une fonction perso est


nécessaire

dans ce cas. Les fonctions intégrées GAUCHE (Excel) et Left (VBA) font
excatement ce que tu demandes.

----------
Ange Ounis
----------


Bonjour,

Juste une question, Est il possible qu'une fonction VBA retourne un



tableau?

(je n'ai jamais essayé)

Je précise:
Je souhaite batire une fonction dans laquelle je passerais un texte et



un

entier.
Cette fonction me retourneras un tableau en coupant le texte au nombre



de

caractères indiqué (entier).
Quelle doit être la definition de la fonction?

function toto (txt as string, lg as integer)as ???? string, array???

D'avance merci

Radix