IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Fonctions en VBA pour gérer les Tableaux Structurés d'Excel
Un tutoriel de Laurent Ott

Le , par laurent_ott

0PARTAGES

18  0 
Bonjour.
J'ai le plaisir de vous présenter une nouvelle documentation :

Fonctions en VBA pour gérer les Tableaux Structurés d’Excel

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.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de laurent_ott
Rédacteur https://www.developpez.com
Le 15/07/2022 à 16:40
Bonjour,
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.
2  0 
Avatar de Bill73
Membre à l'essai https://www.developpez.com
Le 06/03/2024 à 15:03
Bonjour,

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 !
2  0 
Avatar de deedolith
Membre expérimenté https://www.developpez.com
Le 06/03/2024 à 17:35
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.
2  0 
Avatar de Malick
Community Manager https://www.developpez.com
Le 15/02/2022 à 9:58
Bonjour 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 Fauconnier

beaucoup
1  0 
Avatar de
https://www.developpez.com
Le 17/02/2022 à 23:37
Bonsoir,

Merci pour ce lien c'est intéressant.
1  0 
Avatar de Keuf95
Membre régulier https://www.developpez.com
Le 02/03/2022 à 8:47
Bonjour 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.
1  0 
Avatar de laurent_ott
Rédacteur https://www.developpez.com
Le 02/03/2022 à 9:03
Bonjour,
Merci pour cette remarque.
Je viens de corriger cette coquille.

Bonne programmation.
1  0 
Avatar de spookyz
Membre habitué https://www.developpez.com
Le 12/05/2022 à 21:31
SUPER ! Super boulot, super pratique, super pédagogie, super merci.
1  0 
Avatar de AlainD49
Candidat au Club https://www.developpez.com
Le 22/06/2022 à 21:51
Bonjour 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 : Sélectionner tout
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
il se trouve que si le tableau qui reçoit les données est vide (tableau structuré vide contenant une ligne vide), la variable Ajout = False et une nouvelle ligne est créée alors qu'elle existe déjà.
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 👌👍👍👍👍👍
1  0 
Avatar de fvalera
Candidat au Club https://www.developpez.com
Le 13/10/2022 à 18:23
Bonjour,

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'avance
1  0