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 :

Initialisation d'un tableau sans utilisation de boucle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 28
    Par défaut Initialisation d'un tableau sans utilisation de boucle
    Bonjour à tous,

    Alors voilà je cherche un moyen d'initialiser une matrice avec la function array de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim MyArray() as variant
     
    MyArray= Array(Entier11,Chaine12,Num13;
                          Entier21,Chaine22,Num23;
                          ...
                          EntierN1,ChaineN2,NumN3)
    Les variables sont trop spécifiques pour pouvoir être remplies de manière automatique dans une boucle, mon but est de l'initialiser en une opération un peu comme sur des langages comme Python.

    Je sais que la méthode suivante fonctionne MyList = Array(Nom1,Nom2,Nom3) mais je ne parviens pas à trouver la syntaxe pour un tableau à plusieurs dimensions.

    J’espère avoir pu être suffisamment claire, je vous remercie par avance de votre aide.

    Cordialement Dude,

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Je ne pense pas qu'un Array puisse être multidimensionnel.

    Tu devrais trouver ton bonheur dans ce tuto : Utiliser les variables tableaux en VBA Excel


    Sinon si les données à mettre dans le tableau sont dans une plage d'une feuille, tu peux utiliser ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Exemple()
        Dim rg As Range, t()
            Set rg = Range("A1:C3")
            t = rg
    fin:
        Set rg = Nothing
    End Sub

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour

    Système D !

    stockage de arrays dans un array

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub SystemeD()
    Dim Tabl()
    Dim Dim1 As Long
    Dim Dim2 As Long
    Tabl = Array( _
                 Array(1, 2, "toto", #1/1/2016#), _
                 Array("dim 2", 4, 6))
     
    For Dimension1 = LBound(Tabl) To UBound(Tabl)
        For Dim2 = LBound(Tabl(Dim1)) To UBound(Tabl(Dim1))
            Debug.Print Tabl(Dim1)(Dim2)
        Next Dim2
    Next Dim1
     
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Puisque tu veux utiliser un ou des Array(), c'est que tu en connais les bornes. Dans ce cas, tu peux utiliser un tableau à deux dimensions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Sub Test()
     
        Dim Tbl()
     
        ReDim Tbl(1 To 3, 1 To 5)
     
        '1ère ligne du tableau
        Tbl(1, 1) = "Nom 1"
        Tbl(1, 2) = "Prénom 1"
        Tbl(1, 3) = 10
        Tbl(1, 4) = 12
        Tbl(1, 5) = 14
     
        '2ème ligne
        Tbl(2, 1) = "Nom 2"
        Tbl(2, 2) = "Prénom 2"
        Tbl(2, 3) = 16
        Tbl(2, 4) = 18
        Tbl(2, 5) = 20
     
        'et 3ème ligne
        Tbl(3, 1) = "Nom 3"
        Tbl(3, 2) = "Prénom 3"
        Tbl(3, 3) = 22
        Tbl(3, 4) = 24
        Tbl(3, 5) = 26
     
        'dans la feuille de A1 à E3 pour se représenter plus facilement à quoi resemble le tableau
        Range(Cells(1, 1), Cells(UBound(Tbl, 1), UBound(Tbl, 2))) = Tbl
     
    End Sub

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test3()
    Dim tablo(2)
    tablo(0) = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
    tablo(1) = Array(10, 20, 30, 40, 50, 60, 70, 80, 90)
    MsgBox tablo(0)(2)
    MsgBox tablo(1)(2)
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    ah non Patrick !!

    t'es malade aujourd'hui ? Je m'inquiète

    t'as utilisé deux lignes de codes là où j'en utilise une que j'ai juste aéré pour un confort de lecture.

    c'est moi qui pond les merdes et toi qui fait les miracles normalement

    qu'est-ce qu'il se passe ??


    Ps : je te vois venir, ne pense même pas à regrouper tes deux lignes avec un ":"

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut Rhôoooo ‼

    Bonjour, bonjour !

    Citation Envoyé par dude91820 Voir le message
    Dim MyArray() as variant

    MyArray= Array(Entier11,Chaine12,Num13;
    Entier21,Chaine22,Num23; ...
    En reprenant le B-A-BA d'Excel pour écrire une matrice : MyArray = [{1,"A",11;2,"B",22;3,"C",33}]

    En profiter au passage pour consulter l'aide VBA interne de la méthode Evaluate !

    Voilà, voilà !

    ______________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    ______________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    cela me rappelle une discussion hein!! marc hihihi création d'un tableau en string le point virgule (sacré point virgule )

    dans ta face joe !!!!!

    nan!! j'ai séparé pour une accessibilité plus facile dans le code
    et peut être même modifier le tbl partout dans un module en public
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    cela me rappelle une discussion hein!! marc hihihi création d'un tableau en string le point virgule (sacré point virgule)
    Justement j'y pensais ! Si tu retrouves ta discussion, met un lien vers le début de mon intervention
    car cela pourrait aider le dude91820 et ses variables !

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 28
    Par défaut
    Re,

    Merci à tous pour vos réponses, grâce à vous j'ai les solutions qu'il me fallait !
    Bonne soirée à tous.

    Cdlt Dude,

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 18/04/2016, 17h12
  2. Réponses: 7
    Dernier message: 17/10/2013, 22h54
  3. [MySQL] Obtenir un tableau sans utiliser GROUP_CONCAT
    Par dedis dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 11/04/2011, 19h03
  4. Decimal -> Binaire (sans utiliser de tableau)
    Par Sandro Munda dans le forum C
    Réponses: 3
    Dernier message: 14/10/2006, 18h09
  5. conversion binaire-décimal sans utiliser le tableau
    Par ahmed doua dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 13/03/2006, 10h54

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