VOICI LA VERSION 2.1 DE TRANSPOSE2D !
De: AL7 (Alias P'tit Vieux)
Date du: 10/02/2025
Remerciements à:
@Dudu2, @patricktoulon et à tous ceux qui ont participé à la discussion sur l'amélioration de ma 1ére version.
Contenu du package::
Suite à ma première version et à vos participations (que je remercie), sur le forum pour améliorer la fonction, je l'ai réécrite.
Je remercie aussi @Dudu2 à qui je dois le fichier de démonstration qui permet aux utilisateurs de jouer avec la fonction. Je n'oublie pas son importante contribution qui m'a fourni les bases de ces améliorations.
Pour vous donner une idée de se qu'apporte Transpose2D j'ai fait ce tableau comparatif: (non exhaustif)
Comme vous le verrez, AL7_Transpose2D propose 2 fonctions:
• Transpose2D (alias Trans2D) :
Principalement destinée à une utilisation dans VBA.
• TransRange (alias TransRng) :
Certains paramètres ne sont pas accessibles afin d'être utilisée plus facilement dans les cellules. Si besoin vous pouvez utiliser la fonction Transpose2D (Trans2D) dans les cellules.
Bien sûr les deux fonctions peuvent être utilisées dans les cellules ou dans VBA, La différence est que Transpose2D propose plus de fonctions que TransRange.
Tout en gardant les avantages de Transpose2D, vous pouvez demander à garder les mêmes caractéristiques/comportement de numérotation des transpositions que les fonctions Transpose d'Excel pour cela mettez l'option LikeExcel = True (-1).
De plus, j'ai aussi ajouté l'IntelliSense qui vous aidera lors de saisie des paramètres dans vos cellules ou vos codes VBA .
A vous de jouer … 😉
Par avance, merci pour vos retours.
---------------------------------------------------------------------------------------------------------------------
V1.0.0
Bonjour à tous,
J'ai le plaisir de mettre à votre disposition une fonction permettant de transposer un tableau à 1 ou 2 dimensions.
Mais ça existe ? (Oui une de plus😉.)
Oui, il existe la fonction Excel WorksheetFunction.Transpose.
Mais celle-ci a les limites suivantes:
- 65000 lignes.
- Ne connait que l'indice de départ 1. Base 1 -> (1 to a) ou (1 to a, 1 to b)
- Ne sait pas convertir une chaine ou valeur simple en tableau (1 ,1) ou (0,0)
Revenons à ma fonction
Transpose() permet:
Result = Transpose(Ma Variable, True)
Ma Variable: Variable qui peut être un tableau, une valeur/texte unique ou un Range Excel
Base1: (Optionnel) peut-être True ou False. Valeur par défaut: True
Si True le tableau retourné est de base 1 sinon il est de base 0
Result: Un tableau 2D de base 1 ou 0
Voilà.
On peut faire mieux mais la fonction comble les lacunes de celle d'Excel.
Toute suggestion est là bienvenue.
Merci à vous
DIFFERENCE WorksheetFunction.Transpose et Transpose:
Quand on transmet un tableau T(1 to a) :
La fonction d'Excel retourne T(1 to A, 1 to 1) alors que ma fonction Transpose retourne T(1 to 1, 1 to A)
De: AL7 (Alias P'tit Vieux)
Date du: 10/02/2025
Remerciements à:
@Dudu2, @patricktoulon et à tous ceux qui ont participé à la discussion sur l'amélioration de ma 1ére version.
Contenu du package::
- AL7_Transpose2D V2.1.xlam: L'UDF en lui-même
- ExcelDna.IntelliSense64.xll: Permet de voir l'aide des paramètres lors de la saisie
- DEMO TRANSPOSE2D V1.xlsm: Outil de démonstration permettant d'utiliser TRANSPOSE2D (Merci à @Dudu2 😉)
- Quick Guide Transpose2D.pdf: Guide utilisateur
Suite à ma première version et à vos participations (que je remercie), sur le forum pour améliorer la fonction, je l'ai réécrite.
Je remercie aussi @Dudu2 à qui je dois le fichier de démonstration qui permet aux utilisateurs de jouer avec la fonction. Je n'oublie pas son importante contribution qui m'a fourni les bases de ces améliorations.
Pour vous donner une idée de se qu'apporte Transpose2D j'ai fait ce tableau comparatif: (non exhaustif)
Comme vous le verrez, AL7_Transpose2D propose 2 fonctions:
• Transpose2D (alias Trans2D) :
Principalement destinée à une utilisation dans VBA.
• TransRange (alias TransRng) :
Certains paramètres ne sont pas accessibles afin d'être utilisée plus facilement dans les cellules. Si besoin vous pouvez utiliser la fonction Transpose2D (Trans2D) dans les cellules.
Bien sûr les deux fonctions peuvent être utilisées dans les cellules ou dans VBA, La différence est que Transpose2D propose plus de fonctions que TransRange.
Tout en gardant les avantages de Transpose2D, vous pouvez demander à garder les mêmes caractéristiques/comportement de numérotation des transpositions que les fonctions Transpose d'Excel pour cela mettez l'option LikeExcel = True (-1).
De plus, j'ai aussi ajouté l'IntelliSense qui vous aidera lors de saisie des paramètres dans vos cellules ou vos codes VBA .
A vous de jouer … 😉
Par avance, merci pour vos retours.
---------------------------------------------------------------------------------------------------------------------
V1.0.0
Bonjour à tous,
J'ai le plaisir de mettre à votre disposition une fonction permettant de transposer un tableau à 1 ou 2 dimensions.
Mais ça existe ? (Oui une de plus😉.)
Oui, il existe la fonction Excel WorksheetFunction.Transpose.
Mais celle-ci a les limites suivantes:
- 65000 lignes.
- Ne connait que l'indice de départ 1. Base 1 -> (1 to a) ou (1 to a, 1 to b)
- Ne sait pas convertir une chaine ou valeur simple en tableau (1 ,1) ou (0,0)
Revenons à ma fonction
Transpose() permet:
- De transposer un tableau 😱😁
- Transposer directement les Ranges (Retourne le tableau)
- Fin de la limite à 65536 lignes/Colonnes
- De convertir/"transposer" une simple chaine de caractères/valeur en un tableau T(1,1)
- De choisir la base départ du tableau (Base 0 ou 1)
- 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é (Me sert aussi à connaitre si des tableaux ont plus de 2 dimensions) .
Result = Transpose(Ma Variable, True)
Ma Variable: Variable qui peut être un tableau, une valeur/texte unique ou un Range Excel
Base1: (Optionnel) peut-être True ou False. Valeur par défaut: True
Si True le tableau retourné est de base 1 sinon il est de base 0
Result: Un tableau 2D de base 1 ou 0
Voilà.
On peut faire mieux mais la fonction comble les lacunes de celle d'Excel.
Toute suggestion est là bienvenue.
Merci à vous
DIFFERENCE WorksheetFunction.Transpose et Transpose:
Quand on transmet un tableau T(1 to a) :
La fonction d'Excel retourne T(1 to A, 1 to 1) alors que ma fonction Transpose retourne T(1 to 1, 1 to A)
- Auteur
- AL7
- Version
- V2.1.0