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 :

Rendre le contenu d'une liste box dynamic [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Par défaut Rendre le contenu d'une liste box dynamic
    bonjour le forum ,

    dans mon projet , j'ai deux feuil , une contient des données , et l'autre fait appel a une listebox insérer dans une form à l'aide d'un bouton, ma listbox affiche les données enregistrés dans la 1ere feuil, mais d'une façon statique, si j’ajoute une ligne ou une colonne ,la listbox ne change pas reste la même, je voulais savoir la fonction qui le rends dynamique , j'ai trouvé avec des recherche une fonction excel qui commence par =OFFSET... mais je n'arrive pas à l'adapter avec mes données

  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 Merryy, bonjour le forum,

    Si tes données sont dans la colonnes A de l'onglet Feuil1, commencent à la ligne 2 (la ligne 1 contenant généralement le titre) jusqu'à la ligne ..., tu peux alimenter dynamiquement la ListBox avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim O As Worksheet 'déclare la variable O (Onglet)
    Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
     
    Set O = Sheets("Feuil1") 'définit l'onglet O
    DL = O.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet O
    Me.ListBox1.List = O.range("A2:A" & DL) 'alimente la ListBox1

  3. #3
    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

    dans l'evenement change du sheet tu clear ta listbox et la reremplie avec ta plage par le end(xlup) pour le lignes et le (xltoleft) pour les colonnes
    voir utiliser "usedrange"
    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

  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
    Re,

    Mon premier post est plutôt pour une ComboBox. Voici un autre exemple pour une ListBox. Imaginons le tableau ci-dessous commençant en A1 :

    Titre1 Titre2 Titre3 Titre4
    donnée1-1 donnée2-1 donnée3-1 donnée4-1
    donnée1-2 donnée2-2 donnée3-2 donnée4-2
    donnée1-3 donnée2-3 donnée3-3 donnée4-3
    donnée1-4 donnée2-4 donnée3-4 donnée4-4
    donnée1-5 donnée2-5 donnée3-5 donnée4-5
    donnée1-6 donnée2-6 donnée3-6 donnée4-6
    donnée1-7 donnée2-7 donnée3-7 donnée4-7
    donnée1-8 donnée2-8 donnée3-8 donnée4-8
    donnée1-9 donnée2-9 donnée3-9 donnée4-9





    Le code pour une alimentation dynamique acceptant ajout de ligne ou de colonne :

    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
    Private O As Worksheet 'déclare la variable O (Onglet)
    Private TC As Variant 'déclare la variable TC (Tableau de Cellules)
    Private NL As Integer 'déclare la variable NL (Nombre de Lignes)
    Private NC As Byte 'déclare la variable NC (Nombre de colonnes)
     
    Private Sub UserForm_Initialize() 'à 'initialisation de l'USerForm
    Dim PL As Range 'déclare la variable PL (PLage)
     
    Set O = Sheets("Feuil1") 'définit l'onglet O
    Set PL = O.Range("A1").CurrentRegion 'définit la plage PL
    Set PL = PL.Offset(1, 0).Resize(PL.Rows.Count - 1, PL.Columns.Count) 'redéfinit la plage PL sans la première ligne
    TC = PL 'définit le tableau de cellules TC
    NL = UBound(TC, 1) 'définit le nombre de lignes NL du tableau de cellules TC
    NC = UBound(TC, 2) 'définit le nombre de colonnes NC du tableau de cellules TC
    Me.ListBox1.ColumnCount = NC 'définit le nombre de colonnes de la ListBox1
    Me.ListBox1.List = PL.Value 'alimente la ListBox1
    End Sub
    [Édition]
    Bonjour Patrick on s'est croisé...

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Par défaut
    Bonjour ,
    Merci beaucoup Thautheme ,
    Ton code fonctionne parfaitement

  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,

    Si, si ça rajoute aussi les colonnes mais comme j'utilise CurrentRegion pour définir la plage initiale, il faut impérativement qu'il n'y ait aucune colonne vide séparant les données entre elles (idem pour les lignes d'ailleurs)...

  7. #7
    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
    usedrange!!!!!
    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

  8. #8
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    re
    usedrange!!!!!
    Bonjour,
    j'ai utilisé la solution de Thautheme, Merci Beaucoup

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 21/04/2007, 23h49
  2. [Upload] Modifier le contenu d'une liste box automatiquemen
    Par Phenomenium dans le forum Langage
    Réponses: 7
    Dernier message: 16/01/2006, 21h42
  3. Largeur d'une liste box
    Par poiiop dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/09/2004, 23h47
  4. Passer a la ligne ds une list box
    Par schnito dans le forum MFC
    Réponses: 11
    Dernier message: 19/02/2004, 13h11
  5. Réponses: 2
    Dernier message: 17/08/2003, 20h07

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