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

Excel Discussion :

[VBA-E]Rowsource variable pour combobox/listbox


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de ippo_master
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Septembre 2007
    Messages : 71
    Par défaut [VBA-E]Rowsource variable pour combobox/listbox
    Bonjour,

    Je suis confronté au problème suivant lors de la définition de la rowsource d'un combobox/listbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ComboBox1.RowSource = ("Feuil1!A1:C4")
    Je voudrais définir avec des variables la colonne et la ligne pour la rowsource (une fois ce sera la colonne C, une autre fois, la colonne F, idem pour les lignes)

    Merci d'avance

    NB: J'avais à moitié résolu le problème (au niveau des lignes) par le moyen suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ComboBox1
        .AddItem Sheets("Feuil1").Range("A" & i )
    End With
    Mais je ne sais pas combiner ligne et colonne variable

    Oups, ai posté au bon endroit

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour ippo_master,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    c = 6 'si c'est la colonne "F"
    With ComboBox1
        .AddItem Sheets("Feuil1").Range(cells(c, i), cells(c, i))
    End With
    Je répète 2 fois "cells(c, i) car à ma connaissance, il faut avec cette façon de procéder définir une plage même pour une seule cellule.
    Dernière modification par Invité ; 23/10/2007 à 17h49.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Autant pour moi, ici il faut inverser : la ligne en 1er et ensuite la colonne soit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ComboBox1
        .AddItem Sheets("Feuil1").Range(cells(i, c), cells(i, c))
    End With

  4. #4
    Membre confirmé Avatar de ippo_master
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Septembre 2007
    Messages : 71
    Par défaut
    Effectivement cette synthaxe fonctionne et je t'en remercie.
    Toutefois, il me reste un problème de taille : mon objectif est d'alimenter une listbox comportant 3 colonnes.
    Je voudrais donc retranscrire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ListBox1.RowSource = ("Feuil1!A1:C3")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    a = 1 'pour l'exemple
    b = 3 'pour l'exemple
    With ListBox1
        .AddItem Sheets("Feuil1").Range(Cells(i, a), Cells(i, b))
    End With
    Avec ça, il me renvoit un joli message d'erreur

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    si j'ai bien compris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set ws = Worksheets("Feuil1")
     
    a = 1 'colonne A
    b = 3 'colonne C
     
    With ListBox1
        .ColumnCount = (b - a) + 1
        .List() = ws.Range(ws.Cells(1, a), ws.Cells(5, b)).Value
    End With


    bonne soirée
    michel

  6. #6
    Membre confirmé Avatar de ippo_master
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Septembre 2007
    Messages : 71
    Par défaut
    On progresse, on progresse et je vous remercie de votre aide.
    Mon problème final est celui-ci :

    Echantillon de données:

    Colonne A Colonne B Colonne C
    N1 Toto Info1
    N2 Pas Toto Info2
    N3 Toto Info3
    N4 Toto Info4
    N5 Pas Toto Info5

    Ma sélection se base sur l'auteur en colonne B, soit Toto par exemple. Toutes les lignes où figurent Toto en colonne B doivent être recopiées dans ma listbox.
    Celle-ci doit contenir les valeurs de la colonne A, B et C de la ligne répondant au critère de recherche "Toto".

    Le problème du code ci-dessous, c'est qu'il définit une fois pour toute les valeurs contenues dans la listbox alors que je voudrais ajouter ligne par ligne (ajout si Toto en colonne B)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set ws = Worksheets("Feuil1")
     
    a = 1 'colonne A
    b = 3 'colonne C
     
    With ListBox1
        .List() = ws.Range(ws.Cells(1, a), ws.Cells(5, b)).Value
    End With
    Merci d'avance.

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

Discussions similaires

  1. variables pour VBA excel
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/09/2008, 21h35
  2. [code VBA]passage de variable pour une requête paramétrée
    Par christrabin dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/04/2007, 14h30
  3. Réponses: 9
    Dernier message: 16/02/2007, 15h10
  4. [VBA-E] Conserver une variable pour plusieurs modules
    Par pilote301152 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/05/2006, 13h14
  5. [VBA excel] une variable pour 2 classeurs
    Par totoche dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/01/2006, 09h42

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