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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Mécompréhension: ListObject et tableau Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Points : 102
    Points
    102
    Par défaut Mécompréhension: ListObject et tableau Excel
    Bonjour Bonjour,


    Voilà j'ai défini un tableau nommé "TableauExtractionsFormations" sur la page "Extractions Formations". Celui-ci a été crée manuellement: Insertion > Tableau > ...

    Je viens de taper un code pour compter, de deux manières différentes, le nombre de ligne et de colonne de ce tableau. Un fonctionne mais l'autre pas ... J'aurais souhaité savoir pourquoi. Et dans le même temps, j'aurais souhaité avoir quelques éclaircissements théoriques sur la différence entre un tableau Excel et un ListObject. Merci d'avance !

    Le code ne fonctionnant pas est en commentaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Sub TestComparaisonTableau()
     
      Dim NbLigne As Integer, NbColonne As Integer
     
           ' NbLigne = ThisWorkbook.Sheets("ExtractionsFormations").ListObjects("TableauExtractionsFormations").Rows.Count
           ' NbColonne = ThisWorkbook.Sheets("ExtractionsFormations").ListObjects("TableauExtractionsFormations").Column.Count
     
           NbLigne = Range("TableauExtractionsFormations").Rows.Count
           NbColonne = Range("TableauExtractionsFormations").Columns.Count
     
           Debug.Print NbLigne
           Debug.Print NbColonne
     
    End Sub

    Merci d'avance pour l'éclaircissement!

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 514
    Points : 16 443
    Points
    16 443
    Par défaut
    Bonjour

    Un tableau, au sens Excel 2007-2013, ListObject, n'a pas de rows mais des ListRows

    Tu remarqueras que dans les deux syntaxes, la ligne de titre n'est pas comptée, ni la ligne des totaux si elle est active.

    Tableau est une mauvaise traduction du mot Table qui ici à le sens table de base de données plutôt que tableau classique Excel (range).

    Le Tableau est donc un objet intermédiaire entre la plage classique et la table de BD et a donc des propriétés différentes de celles du range.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2015
    Messages : 156
    Points : 102
    Points
    102
    Par défaut Tableau, Table, ListObject
    Bonjour


    Donc si j'ai bien compris, un tableau créé manuellement dans une feuille Excel peut-être accédé soit: via une commande "Range" soit via une commande "ListObject" ?

    Si oui, pourquoi privilégier l'un ou l'autre ?


    Cordialement

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 514
    Points : 16 443
    Points
    16 443
    Par défaut
    Re

    L'objectif des tableau est justement de se rapprocher des bases de données et se libérer des contraintes topographique du tableur lorsqu'on manipule des "tables " de données.

    Dans la mesure ou Excel reste un tableur l'ancienne approche fonctionne mais n'est pas optimum pour les tableaux.

    Conclusion si on utilise les tableaux autant tirer parti de leurs avantages : indépendamment du VBA? un peu de lecture pour mieux cerner cet objet http://www.excel-formations.fr/Trucs...Tableaux01.php.

    A noter que dans 2013 on peut même établir des relations entre tableaux ce qui est impossible entre plages et également les filtrer par des segments.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2007] Gestion des liens vers un tableau Excel (ListObject)
    Par Lari81 dans le forum Word
    Réponses: 1
    Dernier message: 25/06/2015, 08h26
  2. [VB]chart et tableau excel associé
    Par tof008 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2006, 13h31
  3. [VBA-E]créer un tableau Excel en vba
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/01/2006, 16h06
  4. Aide débutant instruction VBA tableau Excell
    Par damien33 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/09/2005, 10h31
  5. [VC++6]intégrer un tableau excel
    Par albireo29 dans le forum MFC
    Réponses: 2
    Dernier message: 16/09/2004, 11h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo