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 préciser où se situe une ListIndex ? [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Autodidacte
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Canada

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut Comment préciser où se situe une ListIndex ?
    Bonjour au Forum.

    Je m'amuse pour la première fois avec un Combobox. Je ne sais pas comment indiquer dans ma commande où débute ma Listindex si elle ne démarre pas en A1

    Je me suis créé 3 colonnes de donnés. Soit en A, B et C. Chacune de ces colonnes possèdent 5 valeurs différentes. Le menu déroulant donne les options de la colonne A. Selon la sélection dans le menu, les valeurs de la colonne B et C correspondant à la colonne A, s'inscrivent automatiquement dans une cellule au côté du Combobox. Jusque là tout fonctionne bien.

          A       B       C
    1   user1   cell1   email1
    2   user2   cell2   email2
    3   uder3   cell3   email3
    etc.
    Seulement voila. La commande Listindex semble prendre par défaut la cellule A1 comme point de départ. Et si cette liste devait commencer plutôt en B2, (ex: B2, C2 et D2 ) comment lui indiquer cette info ?

    Le menu déroulant fonctionne avec la modification du ListFillRange = "B2:B6", mais ComboBox1.ListIndex reste accroché à "A1"

    Il me manque une commande...

    Merci de votre temps

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        ' Localisation de la liste
        ComboBox1.ListFillRange = "B2:B6" 
    End Sub
     
    '*c'est ici que ça coince. Comment indiquer que la Listindex débute en B2 ?
    Private Sub ComboBox1_Change()
     ' renvoie la valeur de la col C en D10
    Range("D10").Value = Cells(ComboBox1.ListIndex + 1, 2) 
     ' renvoie la valeur de la col D en E10
    Range("E10").Value = Cells(ComboBox1.ListIndex + 1, 3)
    End Sub

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonsoir
    ListIndex est l'index de l’élément sélectionné dans la combobox, le premier élément à l'index 0

    Donc, ton code devrait être comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ComboBox1_Change()
     
    Range("D10").Value = Cells(ComboBox1.ListIndex + 2, 2)
    Range("E10").Value = Cells(ComboBox1.ListIndex + 2, 3)
    End Sub

  3. #3
    Membre habitué
    Homme Profil pro
    Autodidacte
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Canada

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut
    Bonsoir à tous

    Je comprend que le 1er nombre signifie alors le # de la ligne et que le 2è nombre signifie le # de la colonne.
    .ListIndex + 1, 1 = début de la liste en A1
    .ListIndex + 1, 2 = début de la liste en B1
    .ListIndex + 2, 2 = début de la liste en B2

    Donc on ne peut pas modifier sa valeur de base. On ne peut que l'incrémenter.

    Ok. Je retiens la leçon.

    Merci pour ta rapidité.

    Bon weekend

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

Discussions similaires

  1. Comment repérer dans quel fichier se situe une ligne de code
    Par Atilili dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/08/2012, 21h14
  2. Comment préciser qu'une ligne est active
    Par guy59960 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/08/2012, 15h41
  3. Réponses: 4
    Dernier message: 09/03/2010, 22h57
  4. Réponses: 4
    Dernier message: 01/04/2009, 12h56
  5. Réponses: 1
    Dernier message: 08/10/2008, 12h19

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