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

  1. #1
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 696
    Points
    6 696
    Par défaut [Tutoriel] Conceptualisation des variables tableau en VBA et Application à l'optimisation du code sous Excel
    Bonjour,

    Ci-dessous, le lien vers un nouveau tutoriel :

    "Conceptualisation des variables tableau en VBA et Application à l'optimisation du code sous Excel"

    Le but de ce tutoriel est :
    • • De proposer une conceptualisation graphique des variables tableau en 1,2 et 3 dimensions en VBA général (vidéo animation 3D pour visualiser le concept) .
      • De présenter les analogies avec Excel ainsi que des champs d’applications.
      • De démontrer les gains de rapidité que leur approche génère sous Excel (avec fichier joint).
      • De proposer une fiche mémo téléchargeable.


    Lien vers ce tutoriel

    Vos commentaires et remarques seront les bienvenus dans l'esprit de nos forums.

    cordialement,

    Didier


    Retrouver tous les meilleurs cours et tutoriels pour apprendre Microsoft Office Excel
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    Merci, tutoriel intéressant.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut Didier

    Une approche graphique des tableaux excellente pour la compréhension

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 652
    Points : 1 114
    Points
    1 114
    Par défaut
    Bonjour,

    Félicitations et Merci beaucoup pour ce prolongement du tuto de Silkyroad: j'utilise de + en + souvent des variables-tableaux et cette 3° dimension peut s'avérer très intéressante (pas toujours, effectivement !)

    Merci également pour les tutos sur les dates négatives en vba et les textbox
    Michel_M

  5. #5
    Membre habitué Avatar de danbo52
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 98
    Points : 125
    Points
    125
    Par défaut Quelques petites erreurs et un poil plus...
    Bonjour,

    Bravo pour ce travail, c'est clair, concis.
    Bon boulot!
    ------------------------------------------------

    Juste un petit "mais..."

    -----------------------------------------------

    J'ai trouvé quelques petites erreurs, pas bien méchantes, et une petite proposition.

    erreurs:

    ne verrais-tu pas plutôt en VIII-B-1

    dans le code

    I=0 et non 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For I = 0 To UBound(tabArrayOrmonth, 1) 'UBound retourne la limite supérieure 
    'de la dimension voulue d'un tableau
       Cells(I+1, 1) = tabArrayOrmonth(I) 'on remplit en colonne    '<--- I+1
       Cells(5+1, I + 2) = tabArrayOrmonth(I) 'on remplit en ligne  '<--- I+1
    Next I
    plutôt que ce que tu as écrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For I = 1 To UBound(tabArrayOrmonth, 1) 'UBound retourne la limite supérieure 
    'de la dimension voulue d'un tableau
       Cells(I, 1) = tabArrayOrmonth(I) 'on remplit en colonne
       Cells(5, I + 2) = tabArrayOrmonth(I) 'on remplit en ligne
    Next I
    ce qui permet au terme "Toto" d'apparaitre

    ------------

    ici, plus bas, attention, tu énonces ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("J1:J5") = Application.WorksheetFunction.Transpose(tboArrayOrmonth)
    mais c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("J1:J5") = Application.WorksheetFunction.Transpose(tabArrayOrmonth)
    le
    "tabArrayOrmonth" est le bon terme si on regarde ce que tu mets avant, et non
    "tboArrayOrmonth"

    -----------

    proposition

    de même, tu peux rendre variable ton tableau par ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C8:G8") = tabArrayOrmonth 'on remplit en ligne
    qui pourrait devenir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(8, 3), Cells(8, 7)) = tabArrayOrmonth
    on remplace alors les valeurs par des variables, disons que ça va dans le sens de l'utilisation des tableaux. Et cette esthétique montre au novice que tout peut se mettre en variable, ce qui facilite la programmation, à mon très humble avis.

    Ne me bats pas, c'était juste parce que je l'avais vu.

    Sincèrment

    Danbo52
    Hem ! J'ai souvent l'impression qu'on ne regarde que moi ! Hem !

  6. #6
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 696
    Points
    6 696
    Par défaut
    Bonjour,

    En premier, je te remercie de tes commentaires, c’est la raison même de ce fil (les questions techniques liés devant être, elles, posées dans les forums ad-hoc, sans personnalisation, mais avec un lien sur le tutoriel si besoin).

    Ceci permet une démarche d’amélioration continue dans nos tutoriels.

    Points par points :

    ne verrais-tu pas plutôt en VIII-B-1

    dans le code

    I=0 et non 1
    Code :
    For I = 0 To UBound(tabArrayOrmonth, 1) 'UBound retourne la limite supérieure
    'de la dimension voulue d'un tableau
    Cells(I+1, 1) = tabArrayOrmonth(I) 'on remplit en colonne '<--- I+1
    Cells(5+1, I + 2) = tabArrayOrmonth(I) 'on remplit en ligne '<--- I+1
    Next I
    plutôt que ce que tu as écrit
    Code :
    For I = 1 To UBound(tabArrayOrmonth, 1) 'UBound retourne la limite supérieure
    'de la dimension voulue d'un tableau
    Cells(I, 1) = tabArrayOrmonth(I) 'on remplit en colonne
    Cells(5, I + 2) = tabArrayOrmonth(I) 'on remplit en ligne
    Next I
    ce qui permet au terme "Toto" d'apparaitre
    Cette remarque est très intéressante car déjà faite par MP (inappropriés) et tu as la bonne démarche de la faire ici pour que l’ensemble des lecteurs en profitent.
    Si je me suis effectivement trompé, c’est bien aussi de le faire savoir dans des termes corrects, le but étant une démarche ouverte, franche et globale.

    Pour ce qui est du Tutoriel, il faut prendre en considération que c’est un tout.

    Dans le chapitre II Préambule, il est notifié ceci :
    Nous emploierons, par défaut, dans notre module VBA l'instruction Option Base 1 (instruction utilisée au niveau module pour déclarer la limite inférieure par défaut des indices d'un tableau.)
    -A plusieurs reprises, je renvoie au tutoriel de Silkyroad : Utiliser les variables tableaux en VBA Excel pour tout ce qui a trait à l’initiation aux variables tableaux en VBA Excel, celui-ci étant fort bien fait et son contenu n’étant pas l’objet de mon tutoriel.
    La prise en considération des ses éléments, te montrera que le code est juste et que « Toto » se comporte bien (pour une fois).
    Par contre, cette remarque apporte des "plus" intéressants pour l’apprenti débogueur vu que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C8:G8") = tabArrayOrmonth
    renvoie bien les 5 items et va attirer son attention sur le fait que le tableau est bien rempli, mais que les boucles ne renvoient pas (si on ne lit pas tout) l’intégralité de son contenu.

    Finalement, comme la remarque est récurrente, je vais ajouter à chaque code les mentions Option Explicit et Option Base 1 qui sont en haut du module.

    ici, plus bas, attention, tu énonces ceci
    Code :
    Range("J1:J5") = Application.WorksheetFunction.Transpose(tboArrayOrmonth)

    mais c'est
    Code :
    Range("J1:J5") = Application.WorksheetFunction.Transpose(tabArrayOrmonth)
    le
    "tabArrayOrmonth" est le bon terme si on regarde ce que tu mets avant, et non
    "tboArrayOrmonth"
    Là tu as tout à fait raison, je vais d’ailleurs apporter la modification.

    proposition

    de même, tu peux rendre variable ton tableau par ceci:
    Code :
    Range("C8:G8") = tabArrayOrmonth 'on remplit en ligne
    qui pourrait devenir
    Code :
    Range(Cells(8, 3), Cells(8, 7)) = tabArrayOrmonth
    on remplace alors les valeurs par des variables, disons que ça va dans le sens de l'utilisation des tableaux. Et cette esthétique montre au novice que tout peut se mettre en variable, ce qui facilite la programmation, à mon très humble avis.
    Ici, ce n’est pas le sujet du tutoriel, on n’aborde de part ce biais que l’utilisation de Cells pas rapport à Range dans un contexte qui n’a pas de rapport direct avec notre sujet au contraire de ce qui est traité en VIII-D.
    En effet le remplissage de la variable tableau est, pas ce moyen, de toutes façons, figée, on remplit à l’instant T le tableau avec un Range donné. Vouloir, de façon sous-jacente, y mêler une notion de variabilité ne pourrait, à mon sens, que conduire le lecteur à des confusions avec l’instruction ReDim.

    Donc merci encore pour ce message, je corrige de suite le préfixe du tableau erroné !

    Cordialement,

    Didier
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

  7. #7
    Invité
    Invité(e)
    Par défaut
    Salut Didier

    J'ai utilisé ce tuto pour expliquer les tableaux à un ami, il a compris tout de suite, surtout l'animation pour 3 dimensions.


  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Novembre 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2018
    Messages : 15
    Points : 32
    Points
    32
    Par défaut
    Bonjour Didier,
    Très instructif, clair et compréhensible.
    Je faisais partie des personnes qui n'osaient pas trop toucher au tableaux vba, mais grâce à ce tuto j'y vois beaucoup plus clair et j'entrevois plusieurs cas d'utilisation propre à mes besoins.
    Un grand merci

    Bien à vous

Discussions similaires

  1. Réponses: 16
    Dernier message: 03/03/2015, 22h59
  2. [XL-2007] Variables tableau dans VBA Excel
    Par abdel792 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/02/2011, 11h17
  3. [Toutes versions] variable tableau en vba
    Par bella1 dans le forum VBA Access
    Réponses: 5
    Dernier message: 13/10/2009, 11h21
  4. Typer des variables (tableau d'objet)
    Par amayii0 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/05/2008, 14h41

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