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 :

Petite Question Manipulation Listbox


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 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 21
    Par défaut Petite Question Manipulation Listbox
    Bonjour à tous,

    Avec le code ci-dessous, j'importe des données d'une base d'access pour les afficher dans une listbox. Problème, l'insertion des données ne commencent pas en ligne 1 et colonne 1 mais plutot en (2,2) sur la listbox. Je ne comprends pas pourquoi ça donne un tel résultat. Pourriez-vous m'aider?

    J'en profite pour vous demander comment rajouter des titres dans les headers de la listbox.

    En vous remerciant.

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Private Sub CommandButton7_Click()
     
    Dim reqSQL As String
    Dim RecSet As DAO.Recordset
    Dim dBase As DAO.Database
    Dim Arr() As Variant
     
    reqSQL = "SELECT * FROM table1"
     
    Set dBase = DAO.OpenDatabase("C:\Users\me\Desktop\Guitarss.mdb", False, False)
    Set RecSet = dBase.OpenRecordset(reqSQL, DAO.dbOpenSnapshot)
     
    v = RecSet.GetRows(10)
     
    intlgn = UBound(v, 2) + 1
    intcol = UBound(v, 1) + 1
     
    ReDim Arr(intcol, intlgn)
     
    Dim TrArr() As Variant
    ReDim TrArr(intlgn, intcol)
     
    With ListBox1
        .ColumnCount = 5
        .ColumnHeads = True
    End With
     
    For j = 1 To intlgn
     
        For i = 1 To intcol
     
                Arr(i, j) = v(i - 1, j - 1)
     
        Next i
     
    Next j
     
    TrArr = Application.Transpose(Arr)
     
     
    ListBox1.List = TrArr
    Set RecSet = Nothing
    Set dBase = Nothing
     
    End Sub

  2. #2
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,

    Alors pour l'indice des éléments de ta ListeBox il te faut décaler les indices de ton tableau source (premier indice = 0). Pourquoi passes-tu par des tableaux intermédiaires (Arr et TrArr)? Ca ne passe pas comme ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox1.List = Application.Transpose(v)
    Pour les titres je crois que ce n'est pas possible si tu alimentes tes données avec autre chose que RowSource. Cf. cette discussion.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 21
    Par défaut
    Bonjour,

    Merci, oui effectivement il a fallut que je commence mon Arr à (0,0). Ce problème est réglé.

    Y'a-t-il un moyen de ne pas passer par des tableau?

  4. #4
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    En fait ta variable v est déjà un tableau (retour d'un RecordSet.GetRows). C'est pour ça que je posais la question des tableaux intermédiaires.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 21
    Par défaut
    Effectivement, t'as bien raison. Je viens de refaire le code en passant directement par v. Là c'est plus propre.

    Merci!!!

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

Discussions similaires

  1. Petite question sur listbox
    Par jijie dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/06/2012, 16h25
  2. Listbox petite question
    Par mihaispr dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 17/04/2009, 20h21
  3. [Visuel XP] Petite question sur le theme XP...
    Par ZoumZoumMan dans le forum C++Builder
    Réponses: 12
    Dernier message: 20/01/2005, 14h41
  4. [FOREIGN KEY] petite question bete ...
    Par dzincou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 16h35
  5. Petite question sur les performances de Postgres ...
    Par cb44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/01/2004, 13h49

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