Transpose (P'tit vieux): Plus de limites et "bugs" comme celle d'Excel

(AL7 = P'tit vieux 🤕)

Bonjour Ă  tous,

J'ai le plaisir de mettre Ă  votre disposition une fonction permettant de transposer un tableau Ă  1 ou 2 dimensions.

En bonus, une fonction qui retourne le nombre de dimension du tableau

Mais ça existe ?

Oui, il existe la fonction Excel WorksheetFunctions.Transpose.

Mais elle a les limites suivantes:

- 65536 lignes.

- Ne connait que l'indice de départ 1. Base 1 -> T(1 to a) ou T(1 to a, 1 to b)

- Ne sait pas convertir une chaine ou valeur simple en tableau T(1 ,1) ou T(0,0)

- Si vous lui donnez un tableau T(1 to a, 1 to 1) le résultat sera un tableau T(1 to a)

- Ne sait pas convertir un texte ou valeur en tableau; Ex.: MyStr = "Foo" retournera "Foo"

Revenons Ă  ma fonction

Transpose() permet:

  1. PLUS DE LIMITES
  2. De transposer un tableau
  3. Transposer directement les Ranges (Retourne le tableau 2D)
  4. Retourne toujours un tableau 2D
  5. Renvoie le tableau transposé soit en base 0 soit en base 1
  6. De "transposer" une simple chaine de characters ou une valeur: Ex.: MyStr = "Foo" retournera T(1,1) = "Foo" (ou T(0,0) = "Foo")
  7. Accepte les Objets comme contenu du tableau

Le fichier contient:
- Un module contenant un code pour tester la fonction
- Un module de classe cls_Tools contenant la fonction Transpose.
- La fonction de CountArrayDim. Elle sert à connaitre le nombre de dimensions du tableau passé

Le fichier Excel contient :
- 2 Feuilles ("Janvier" et "Result") pour affichage
- un module avec un code pour vous permettre de tester la fonction
- Un module de classe contenant la fonction Transpose() et la fonction CountArrayDim(). Cette dernière est utiliser par Transpose() compter les nombre de dimensions d'un tableau.

PS:
Le code est libre d'accés et de droit.
Merci de laisser l'auteur et/ou d'y faire référence si vous l'utilisez et/ou le modifiez. (Simple "règle de César": Laisser à César ce qui appartient à César )

19al7-transpose.xlsm (41.98 Ko)
Rechercher des sujets similaires Ă  "transpose tit vieux limites bugs comme celle"