OVH Cloud OVH Cloud

aide sur un algo

2 réponses
Avatar
Kamel
Bonsoir à tous !

J'ai un petit soucis en VBA sous Excel que voici:

J'ai un String qui est de la forme: [[a;b;c][d;e;f]] qui représente une
matrice. Je voudrais créer une fonction qui me le transforme en Variant du
type monVariant(1,1)=a, monVariant(1,2)=b ... monVariant(2,3)=f

Je cherche aussi à ce que ma fonction dimensionne automatiquement mon
variant (retourné) dont je ne connais pas à priori sa taille ...

Si vous connaissez une fonction Excel ou API qui le fait directement, votre
aide sera la bienvenue !!

Merci et bonne soirée

2 réponses

Avatar
Ange Ounis
Pour démarrer,
- à condition que tu utilises Excel 2000 ou + récent
- à condition aussi que tes chaînes aient toutes la même construction :

'''''''''''''''
Function Tablo(S As String)
Dim Arr1, Arr2(), i, j
S = Mid(S, 3, Len(S) - 4)
Arr1 = Split(S, "][")
ReDim Arr2(UBound(Arr1), UBound(Split(Arr1(0), ";")))
For i = LBound(Arr1) To UBound(Arr1)
For j = LBound(Split(Arr1(0), ";")) To UBound(Split(Arr1(0), ";"))
Arr2(i, j) = Split(Arr1(i), ";")(j)
Next j
Next i
Tablo = Arr2
End Function

Sub essai()
Dim Str$
Str = "[[a;b;c][d;e;f][g;h;i]]"
MsgBox Tablo(Str)(2, 1)
End Sub
'''''''''''''''

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

Bonsoir à tous !

J'ai un petit soucis en VBA sous Excel que voici:

J'ai un String qui est de la forme: [[a;b;c][d;e;f]] qui représente une
matrice. Je voudrais créer une fonction qui me le transforme en Variant du
type monVariant(1,1)=a, monVariant(1,2)=b ... monVariant(2,3)=f

Je cherche aussi à ce que ma fonction dimensionne automatiquement mon
variant (retourné) dont je ne connais pas à priori sa taille ...

Si vous connaissez une fonction Excel ou API qui le fait directement, votre
aide sera la bienvenue !!

Merci et bonne soirée




Avatar
Kamel
Merci à toi c'est très judicieux !

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

Pour démarrer,
- à condition que tu utilises Excel 2000 ou + récent
- à condition aussi que tes chaînes aient toutes la même construction :

'''''''''''''''
Function Tablo(S As String)
Dim Arr1, Arr2(), i, j
S = Mid(S, 3, Len(S) - 4)
Arr1 = Split(S, "][")
ReDim Arr2(UBound(Arr1), UBound(Split(Arr1(0), ";")))
For i = LBound(Arr1) To UBound(Arr1)
For j = LBound(Split(Arr1(0), ";")) To UBound(Split(Arr1(0), ";"))
Arr2(i, j) = Split(Arr1(i), ";")(j)
Next j
Next i
Tablo = Arr2
End Function

Sub essai()
Dim Str$
Str = "[[a;b;c][d;e;f][g;h;i]]"
MsgBox Tablo(Str)(2, 1)
End Sub
'''''''''''''''

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

Bonsoir à tous !

J'ai un petit soucis en VBA sous Excel que voici:

J'ai un String qui est de la forme: [[a;b;c][d;e;f]] qui représente une
matrice. Je voudrais créer une fonction qui me le transforme en Variant
du type monVariant(1,1)=a, monVariant(1,2)=b ... monVariant(2,3)=f

Je cherche aussi à ce que ma fonction dimensionne automatiquement mon
variant (retourné) dont je ne connais pas à priori sa taille ...

Si vous connaissez une fonction Excel ou API qui le fait directement,
votre aide sera la bienvenue !!

Merci et bonne soirée