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 :

Comment afficher dans chaque ligne les elements d'un tableau des tableaux ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 16
    Points : 14
    Points
    14
    Par défaut Comment afficher dans chaque ligne les elements d'un tableau des tableaux ?
    bonjour tout le monde!

    SVP j'ai besoin votre aide!

    j'ai crée un tableau qui contient des tableaux (Array Of Arrays) dans VBA et je veux afficher dans chaque ligne tous les elements d'un tableau(i) en utilisant MsgBOX???

    merci d'avance

  2. #2
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    bonjour
    ta question n'est pas tres clair

    déjà des tablaux dans une cellules heu... ca me parait difficile

    si par tableaux tu entend variable tableaux et que dans ces éléments tu a des subarrays il y a la fonction "join" pour remettre les données sous forme de string

    tu pourrais afficher dans ton msgbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox join(element,vbcrlf)
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
    Dim tableau(3)
    tableau(1) = "bonjour"
    tableau(2) = Array("bonjour ceci est un array", "item1", "item2", "item3")
    tableau(3) = " je pense que tu a compris"
    For i = 1 To 3
    If IsArray(tableau(i)) Then
    MsgBox Join(tableau(i), vbCrLf)
    Else
    MsgBox tableau(i)
    End If
    Next
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Mars 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    merciii infiniment d'avoir répondu

    bon voici le code que j'ai écrit :


    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
    Sub test2()
    Dim pop(1 To 100) As Variant
    Dim indv(3) As Integer
    Dim indiv(3) As Integer
    Dim k As Integer
    Dim txt As String
     
    For j = 0 To 3
    indv(j) = Int((10 * Rnd) + 1)
    Next j
     
     
    For i = 1 To 2
        pop(i) = indv
    Next i
     
    For i = 1 To 2
    For j = 0 To 3
     
        txt = txt & pop(i)(j) 
     
        Next j
        MsgBox txt & vbnewline
     
      Next i
     
    End Sub
    mais ça n'a pas marché car il m'affiche les deux lignes dans un seul ligne
    je veux avoir comme ça
    pop(1) : 1524
    pop(2): 1574
    ...

  4. #4
    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
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    je pense que tu devrais lire un peu la base du vba notament la porté et la mise a jour d'une variable en vba

    allez un exemple encore
    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 test()
    Dim tableau(3)
    tableau(1) = "bonjour"
    tableau(2) = Array("bonjour ceci est un array", "item1", "item2", "item3")
    tableau(3) = " je pense que tu a compris"
    For i = 1 To 3
    If IsArray(tableau(i)) Then
    txt = txt & Join(tableau(i), vbCrLf) & vbCrLf
    Else
    txt = txt & tableau(i) & vbCrLf
    End If
     
    Next
    MsgBox txt
    End Sub

  5. #5
    Expert éminent sénior
    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
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour !

    Citation Envoyé par younesait Voir le message
    j'ai crée un tableau qui contient des tableaux (Array Of Arrays) dans VBA et je veux afficher dans chaque ligne tous les elements d'un tableau(i)
    Avec la première règle en développement VBA Excel :  penser Excel avant VBA  !
    A savoir ici pour afficher une ligne la fonction de feuille de calculs INDEX (donc voir l'aide d'Excel et non celle du VBA) …

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Demo4Noob1()
        Dim V(1 To 10), LIGNE%(3), C&, R&
     
        For R = 1 To UBound(V)
            For C = 0 To UBound(LIGNE):  LIGNE(C) = Fix(Rnd * 10) + 1:  Next
            V(R) = LIGNE
        Next
     
        For R = 1 To UBound(V)
            Debug.Print Join(Application.Index(V(R), 1, 0), vbTab)
        Next
    End Sub
    Résultat dans la fenêtre Exécution du VBE …


    Une autre démonstration pour coller le tableau dans la feuille de calculs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Demo4Noob2()
        Dim V(1 To 10), LIGNE%(3), C&, R&
     
        For R = 1 To UBound(V)
            For C = 0 To UBound(LIGNE):  LIGNE(C) = Fix(Rnd * 10) + 1:  Next
            V(R) = LIGNE
        Next
     
        [B2].Resize(UBound(V), UBound(LIGNE) + 1).Value = Application.Index(V, 0, 0)
    End Sub
    ___________________________________________________________________________________________________________

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

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

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

Discussions similaires

  1. [Débutant] Comment afficher dans chaque axe une image
    Par Shokola dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 18/05/2015, 17h23
  2. Réponses: 13
    Dernier message: 24/09/2010, 16h41
  3. Réponses: 3
    Dernier message: 22/04/2007, 01h45
  4. Réponses: 3
    Dernier message: 26/08/2006, 15h03
  5. Comment afficher dans une combobox les driver des imprimante
    Par lassad dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/10/2005, 09h56

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