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 :

Syntaxe de la fonction Array


Sujet :

Macros et VBA Excel

  1. #1
    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 Syntaxe de la fonction Array
    Bonjour,


    Je fait les tableaux avec la fonction Array(), comme ci-dessous.
    Avec un tableau à 2 dimensions, l'affectation à la plage ne donne
    pas de bons résultats, j'ai une suite de #N/A.

    Pourtant, la fenêtre des variables locales montre que le tableau est bien construit.
    Une explication?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Public Sub lesArrayCestSimple()
        '
        Dim myArray() As Variant
        ' tableau à une dimension: résultat ok
        myArray = Array("toto", "tata", "titi", "tutu")
        Range("A1:D1") = myArray
        ' tableauà 2 dimension: résultat non ok.
        myArray = Array(Array("toto", "tata", "titi", "tutu"), Array("ello", "ella", "elli", "ellu"))
        Range("A1:E2") = myArray
    End Sub

  2. #2
    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 699
    Points
    6 699
    Par défaut
    Bonjour,

    A partir d’un code pris dans ce tutoriel, tu as construit une chose plus complexe qui n’est d’ailleurs pas abordée car hors sujet dans ce tutoriel.

    Il s’agit de tableau de tableau ou de tableau en escalier, donc le tableau que tu as créé est bien un tableau à une dimension qui a pour éléments… des tableaux à une dimension, comme te le montrait d’ailleurs bien ta fenêtre variable locale.

    Il faut bien en inspecter la notation :

    Myarray(1)(1) se traduit ainsi : Myarray(1) est le nom de ton tableau et le (1) qui suit son index de tableau à une dimension.

    D’où le résultat obtenu sur la feuille avec le code modifié ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
    Option Base 1
    Public Sub lesArrayCestPasSiSimple()
        '
        Dim myArray() As Variant
        ' tableau à une dimension: résultat ok
        myArray = Array("toto", "tata", "titi", "tutu")
        Range("A1:D1") = myArray
        ' tableau de tableau à une dimension: résultat ok.
        myArray = Array(Array("toto", "tata", "titi", "tutu"), Array("ello", "ella", "elli", "ellu"))
        Range("A5:D5") = myArray(1)
        Range("A6:D6") = myArray(2)
    End Sub
    cordialement,

    Didier

Discussions similaires

  1. [SQLITE][UDF] syntaxe d'une fonction
    Par nannous dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 31/10/2006, 13h56
  2. syntaxe d'une fonction
    Par john491 dans le forum Général Python
    Réponses: 2
    Dernier message: 01/05/2006, 23h44
  3. [VB6]Fonction array et SQL
    Par virge54 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 25/04/2006, 08h34
  4. Retour de fonction array
    Par zevince dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/04/2006, 15h09
  5. Syntaxe de la fonction SQL month() ??
    Par merlubreizh dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/09/2005, 11h16

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