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 :

[EX XP] trouver l'index de la collection selectionné


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut [EX XP] trouver l'index de la collection selectionné
    bonjour,

    je creer un collection et pour remplire un combobox.

    une fois que l'utilisateur a selectionné un element de la liste et qu'il clique sur suivant, il faut que je retrouve l'index.

    comment retrouver cette index ???

    merci d'avance
    Via

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Explique aux gens
    Tu as une liste... Où ça ? Dans une feuille de calculs, dans un userform ?
    Tu renseignes cette liste... Comment ça ? Par la collection ?
    Et tu as une collection avec des trucs dedans...
    Tu sélectionnes un élément de la liste et
    - Tu veux connaître l'élément suivant dans la liste ?
    - Tu veux connaître l'élément suivant dans la collection ?

    Si la liste a été renseignée par le contenu de la collection, c'est facile, c'est DonnéeSuivante = LaListe(laListe.Listindex + 1)

    S'il n'y a pas de relation entre la collection et la liste, alors tu n'as plus qu'à faire une boucle sur les indices de la collection.
    Ta collection est déclarée en public :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Collect As New Collection
    Tu as quelque part un truc comme ça pour remplir la collection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For i = 1 To 50
            Collect.Add Cells(i, 1)
        Next
    Tu sélectionnes un élément de ta liste... l'index suivant dans la collection donnera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub BoutonSuivant_Click()
     
        '... Le code que tu veux
     
        For i = 1 To Collect.Count
            If Collect(i) = LaListe Then _
                MsgBox Collect(i + 1)
        Next
    Et tu en fais ce que tu veux...
    Bonne journée

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut
    Ok j'ai fais ce poste un peu a l'arrache.

    ce poste fais suite a ce probleme posé la semaine derniere ou avant ..
    enfin voici le lien

    et donc je remplie ma combo comme ca :
    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
     
    Dim Titre As Collection
    Private Sub UserForm_Initialize()
     
        Set Titre = New Collection
        x = 3
    Do While ActiveWorkbook.Worksheets("Sicav_Placements").Range("A" & x).Value <> ""
        Titre.Add ActiveWorkbook.Worksheets("Sicav_Placements").Range("A" & x).Value
        x = x + 1
    Loop
    Dim IndexTitre As Integer
    IndexTitre = 1
     
    Do Until IndexTitre > Titre.Count
        Me.CbListeTitre.AddItem Titre.Item(IndexTitre)
        IndexTitre = IndexTitre + 1
    Loop
     
    Me.TBReference.SetFocus
     
    End Sub
    Private Sub CmBoutAnnuler_Click()
        Unload Me
    End Sub
    c'est peux etre plus claire comme ca ?
    desolé encore.

    par contre je ne voie pas comment insere ton code, ou c'est que je ne comprend quelque chose, je regarde encore une fois.

    merci encore
    Via

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 63
    Par défaut
    ok c'est bon j'ai trouver

    voici mon controle des données apres que j'ai cliqué pour validé ma selection
    Declaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Const Achat = "Ordre d'achat des Titres : "
    Const Vente = "Ordre de vente des Titres : "
        Dim IndexTitre As Integer
        Dim Titre As New Collection
        Dim OrdreAchat As New Collection
        Dim OrdreVente As New Collection
        Dim Date_de_La_Note As Date
        Dim Action_Treso As String
    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
     
    Private Sub CmBAjout_Click()
        Controle_Donnee
    End Sub
    Sub Controle_Donnee()
        Dim i As Integer
        i = 1
        Do While i < Titre.Count + 1
            If Titre(i) = CbListeTitre.Column(0) Then
                MsgBox Titre(i) & vbNewLine & "index : " & i
                Select Case Action_Treso
                        Case Achat
                            OrdreAchat.Add Titre(i)
                            Titre.Remove i
                        Case Vente
                            OrdreVente.Add Titre(i)
                            Titre.Remove i
                End Select
            End If
            i = i + 1
        Loop
     
        Me.CbListeTitre.Clear
        IndexTitre = 1
        Do Until IndexTitre > Titre.Count
            Me.CbListeTitre.AddItem Titre.Item(IndexTitre)
            IndexTitre = IndexTitre + 1
        Loop
     
        If Titre.Count = 0 Then
            Select Case Action_Treso
                    Case Achat
                        Action_Treso = Vente
                        LbRefOperation.Caption = Action_Treso
                        MsgBox "Maintenant vous allez selectionner l'" & Action_Treso
                        Initialisation_liste
                    Case Vente
                        CmBAjout.Enabled = False
                        CmBTerminer.Enabled = True
            End Select
     
        End If
    End Sub
    merci beaucoup pour ces info

    Via

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

Discussions similaires

  1. Trouver les indexes utilisés
    Par stegaud dans le forum Administration
    Réponses: 3
    Dernier message: 03/05/2007, 13h45
  2. [SQL2K][TSQL] Trouver les indexs portant sur une colonne
    Par maitrebn dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 29/08/2006, 23h09
  3. Réponses: 13
    Dernier message: 25/01/2006, 12h02
  4. [Débutant][indexes]Trouver les indexes d'une table
    Par Gromitou dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 13/12/2005, 17h50
  5. [IB5.5] comment trouver les indexes
    Par inconu dans le forum InterBase
    Réponses: 3
    Dernier message: 06/10/2005, 08h45

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