Fonctions en VBA pour gérer les Tableaux Structurés d'Excel
Un tutoriel de Laurent Ott
Le 2022-02-14 20:07:09, par laurent_ott, Rédacteur
Bonjour.
J'ai le plaisir de vous présenter une nouvelle documentation :
Dans cet article vous allez découvrir des fonctions en VBA pour gérer les tableaux structurés d’Excel.
Ces fonctions couvrent l’essentiel des besoins du programmeur et lui simplifient la vie, car il n’est pas nécessaire de connaître les subtilités de l’objet « ListObject » pour les utiliser.
Vous pouvez déposer vos commentaires dans cette discussion.
Bonne lecture.
J'ai le plaisir de vous présenter une nouvelle documentation :
Dans cet article vous allez découvrir des fonctions en VBA pour gérer les tableaux structurés d’Excel.
Ces fonctions couvrent l’essentiel des besoins du programmeur et lui simplifient la vie, car il n’est pas nécessaire de connaître les subtilités de l’objet « ListObject » pour les utiliser.
Vous pouvez déposer vos commentaires dans cette discussion.
Bonne lecture.
-
laurent_ottRédacteurBonjour,
Je viens de mettre à jour la documentation et y ajouter deux autres fonctions pour supprimer les doublons, et pour supprimer les lignes visibles (préalablement sélectionnées par un filtre).
Bonne programmation.le 15/07/2022 à 16:40 -
Bill73Membre à l'essaiBonjour,
merci Laurent, tout marche parfaitement.
A deedolith, je ne vois pas pourquoi hors sujet. Comme je l'ai dit dans mon premier message, il y a une fonction pour importer un tableau, pourquoi pas une fonction pour exporter ce tableau !le 06/03/2024 à 15:03 -
deedolithMembre expérimentéUne fonction nommée TS_OuvrirClasseurInvisible, comme son nom l'indique, tente d'ouvrir un classeur.
Sans regarder son implémentation, cela pose déjà question:
Quel est le rapport direct avec la gestion des tableaux structurés ?
En regardant l'implémentation, on s'aperçoit que cette dernière ne manipule aucun tableau, ce qui pose la même question une second fois.
Utilisée en interne (donc private), cela à du sens, l'utilisateur final ne se soucie pas de l'implémentation (et il n'a pas à s'en soucier).
Sur l'export / import de données, la bibliothèque va acquérir une ressource (ouvrir un fichier / connexion a une BDD ect ...), realiser l'import (ou export), libérer la ressource.
C'est le comportement qu'on attend (gestion des ressources internes transparentes).
Par contre, mettre a disposition les ressources internes à l'utilisateur final .., c'est la porte ouverte à toutes les bêtises possibles et imaginables (et viol du principe d'encapsulation).
Et par expérience, lorsque l'on laisse une porte ouverte, les ennuis s'y engouffrerons tôt ou tard, ce n'est qu'une question de temps.
On peut faire l'analogie avec ta maison que tu désires repeindre.
Tu donnes accès aux ouvriers à l'extérieur de ta maison (tu leur fournit le service: "Accéder à l'extérieur".
Maintenant imagine que tu leurs fournisse le service: "Accéder à l'intérieur".
- S'il sont honnetes, pas de problème.
- S'ils le sont moins .... surprises surprises.le 06/03/2024 à 17:35 -
MalickCommunity ManagerBonjour Laurent,
Excellente contribution qui montre encore la puissance des tableaux structurés qui malheureusement ne sont pas systématiquement utilisés
Je le mets dans ma liste des tutos de référence à l’instar de ceux rédigés par Pierre Fauconnierbeaucoup le 15/02/2022 à 9:58 -
Bonsoir,
Merci pour ce lien c'est intéressant.le 17/02/2022 à 23:37 -
Keuf95Membre régulierBonjour et merci pour ce tuto sur le VBA et les tableaux.
Juste un petit oubli il manque un "End Function" à la fin de la première Function : TS_ConvertirPlageEnTS
Il faut bien qu'il reste quelque chose à faire pour nous faire réfléchir un simple copier/coller de code serait trop facile
Mais lorsqu'il n'y a plus que ça à faire on devrait s'en sortir.
Encore une fois merci pour le travail.
Bonne continuation.le 02/03/2022 à 8:47 -
laurent_ottRédacteurBonjour,
Merci pour cette remarque.
Je viens de corriger cette coquille.
Bonne programmation.le 02/03/2022 à 9:03 -
spookyzMembre habituéSUPER ! Super boulot, super pratique, super pédagogie, super merci.le 12/05/2022 à 21:31
-
AlainD49Candidat au ClubBonjour et félicitations pour votre travail.
Je me permets de vous signaler un problème rencontré à l'utilisation
En ce qui concerne la fonction d'importation des données, en méthode ajout modif, à ce niveau dans la procédure
Code : 1
2
3
4
5
6
7
8
9
10
11
12
13' Boucle sur les colonnes : For x = 1 To TD.ListObject.ListColumns.Count ' Récupère le nom de la colonne : NomColonne = TD.ListObject.HeaderRowRange(x).Value ' S'il faut ajouter une ligne : If Ajout = False Then Ajout = True TS.ListObject.ListRows.Add yy = 0 End If ' Ajoute la donnée au tableau destination : Call TS_ModifCellule(TS, NomColonne, yy, TD.ListObject.DataBodyRange(y, x).Value, TS_Valeur) Next x
Sinon sur le bouclage des données à importer, ne faudrait-il pas d'abord boucler sur les lignes puis sur les colonnes ?
Pour ma part j'ai modifié en testant le nombre de lignes pour en ajouter une ou pas.
Puis je boucle sur les colonnes de la table d'importation pour remplir la ligne qui reçoit les valeurs.
Je ne sais pas si cela est correct (je ne suis pas du métier) mais cela fonctionne maintenant pour ma part.
Cdt et encore merci pour vos travaux 👌👍👍👍👍👍le 22/06/2022 à 21:51 -
fvaleraCandidat au ClubBonjour,
Déjà superbe travail.
Concernant la fonction copier une colonne, existe il la même fonction pour plusieurs colonnes ?
Je souhaiterais copier plusieurs colonnes non contiguës d'un tableau A filtré d'un classeur A à la suite d'un tableau B d'un classeur B.
Le nombre de lignes à copier est variable.
Merci d'avancele 13/10/2022 à 18:23