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 :

Transposé les valeurs d'une feuille masquée dans un listbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut Transposé les valeurs d'une feuille masquée dans un listbox
    Bjr les amis du forum
    Je sais que cette question à été traité plus ou moins. Mais je n'ai pas trouvé ce qui me faut pour adapter à mon formulaire. Donc voici la préoccupation.
    J'utilise un listbox qui doit afficher les valeurs de ma base de données se trouvant sur une feuille nommée("source").
    Mais comme je l'ai masquée donc ma listbox n'affiche que le squelette du tableau à savoir un tableau vide.
    Donc comment faire pour que ma listbox récupère les valeurs de mon tableau en l'affichant ?
    Merci pour votre aide...

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Niamké, bonjour le forum,

    Un onglet Feuil1 avec des données sur une dizaine de lignes et quelques colonnes. J'ai rapidement créé ce code d'une UserForm avec une Listbox que j'alimente à l'initialisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim O As Worksheet
    Dim TV As Variant
     
    Set O = Worksheets("Feuil1")
    TV = O.Range("A1").CurrentRegion
    Me.ListBox1.ColumnCount = UBound(TV, 2)
    Me.ListBox1.List = TV
    Que l'onglet Feuil1 soit visible (-1), masqué (0) ou VeryHidden (2), la Listbox affiche toujours le tableau !?... Peux-tu nous en dire plus si tu veux qu'on t'aide. Comment est alimentée ta ListBox ?

  3. #3
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    Ma listbox est alimentée par Row source
    Voir code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    set sht=thisworkbook.worksheets("source")
    Set rang =sht.range("b8").currentregion
    With rang
    Set rang=. offset (1).resize(.rows.count-1)
    End with
    With me.listbox1
    .rowsource=rang.address
    .Columnheads=true
    .Columncount=14
    .columnwidths="85;85;..."
    End with
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim O As Worksheet
    Dim TV As Variant
     
    Set O = Worksheets("Feuil1")
    TV = O.Range("A1").CurrentRegion
    Me.ListBox1.ColumnCount = UBound(TV, 2)
    Me.ListBox1.List = TV
    Quand je rentre ce code il y a un message d'erreur : accès refusé
    Quand je remplace le 2 par 14 pour l'ensemble de mes colonnes j ai comme message : l'indice n'appartient à la sélection

    En fait je souhaite alimenter ma listbox via ma feuille ("BD")masquée.
    Car cette dernière étant masquée la listbox n'arrive pas à la trouver récupérer ses données. En plus je ne voudrais pas que les utilisateurs aient accès à cette base de données ; ils auront seulement que la listbox pour leur information générale.

  4. #4
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Niamké, bonjour le forum,

    Je n'utilise plus la propriété RowSource car elle pose parfois problème. Idem avec la propriété ColumHeads...
    Regarde le fichier en pièce jointe. Deux ListBox alimentées comme je t'avais proposé dans mon premier exemple et adaptées à ton fichier. L'onglet Source est VeryHidden...
    Le code :

    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
    Private Sub UserForm_Initialize()
    Dim O As Worksheet
    Dim TV As Variant
     
    Set O = Worksheets("Source")
    TV = O.Range("B8").CurrentRegion
    With Me.ListBox1
        .ColumnCount = UBound(TV, 2)
        .Column = Application.Index(TV, 1)
    End With
    TV = O.Range("B8").CurrentRegion.Offset(1, 0).Resize(UBound(TV, 1) - 1, UBound(TV, 2))
    With Me.ListBox2
        .List = TV
        .ColumnCount = UBound(TV, 2)
    End With
    End Sub
    Le fichier :
    Fichiers attachés Fichiers attachés

  5. #5
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 617
    Par défaut
    Merci Tauti. Je t'enverrai le feedback

    Les en-têtes ne s'affichent pas.

    tout est parfait sauf les en-têtes qui ne s'affichent pas. Donc Je vais devoir utiliser les labels pour afficher les en-têtes . Sinon si il y a quelque chose à modifier je suis à l'écoute.Mercii. Aligatô

    Ma listbox contient 14 colonnes donc si j'utilise des labels pour mettre les en-têtes, ça n'arrange pas les choses. Donc suis obligé de passer par les en-têtes dans la listbox.

  6. #6
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    Il faut deux listbox pour afficher les en-têtes dans la première et la base dans la seconde. Regarde mon fichier !...

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

Discussions similaires

  1. Récupérer les valeurs d'une feuille dans un formulaire
    Par abdelkarim_1987 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/08/2013, 20h14
  2. [XL-2007] mettre les valeurs d'une feuille excel dans un formulaire
    Par dragoes64 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/05/2011, 10h20
  3. Copier les valeurs d'une feuille dans une nouvelle feuille en VBA
    Par muska78 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/06/2008, 10h44
  4. inserer les donnees d une feuille excel dans une table sql
    Par josyde2006 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 20/12/2006, 08h40

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