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 :

Recopier Listeview dans l'ordre d'encodage vers une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Préretraité
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Préretraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Points : 25
    Points
    25
    Par défaut Recopier Listeview dans l'ordre d'encodage vers une autre feuille
    Bonjour le forum,
    J'ai une Listeview de 1 à 100.

    Si je sélectionne différents chiffres dans le désordre, j'aimerais les retrouver sur une autre feuille (Liste) également dans l'ordre d'encodage.
    Ex : Listeview qui se trouve ds la Feuil "Menu".
    Je sélectionne : 1, 4, 10, 2, 90, 6, 3, 21, ....., sélection que je valide.

    Actuellement, lorsque je valide, je récupère la sélection sur une autre feuil "Liste" dans un ordre croissant : 1, 2, 3, 4, 6, 10, 21, 90, .... alors que j'aimerais la récupérer dans l'ordre que je l'avais encoder.

    Voici une partie du code utilisé :
    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
    Private Sub CommandButtonValider_Click()
    Dim Checkliste As ListItem
    Dim i As Integer
    Dim j As Integer
    Application.ScreenUpdating = False
    If TextBox1 = "" Then
        Me.TextBox1.SetFocus
        MsgBox "Entrer nombre de terrains", vbCritical, "Club de Pétanque les Cigales"
        Exit Sub
    End If
     
    If TextBoxConte < 4 Or TextBoxConte > 90 Then
        MsgBox "Vous n'avez pas respecté le nombre de joueurs", vbCritical, "Club de Pétanque les Cigales"
        Exit Sub
    End If
    If OptionButtonManche4 = False And OptionButtonManche4 = False And OptionButtonManche4 = False Then
        MsgBox "Vous devez choisir un Nombre de Manches avant de valider", vbCritical, "Club de Pétanque les Cigales"
        Exit Sub
    Else
    Sheets("liste").Range("A2:A" & Sheets("liste").[A1000].End(xlUp).Row).ClearContents
        For Each Checkliste In ListView1.ListItems
            If Checkliste.Checked = True Then
                i = i + 1: Sheets("liste").Cells(i + 1, 1) = Checkliste
                j = j + 1
            End If
        Next
    End If
    If j = 0 Then MsgBox "Vous n'avez pas selectionné de joueurs", vbCritical, "C": Exit Sub
    With Sheets("Classement")
        .Unprotect
        .Range("A1") = "Classement tournoi du " & Format(Date, "DD-MM-YYYY")
        .Protect
    End With
    Cordialement
    margar

  2. #2
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    dans ce cas, il faut que tu envois l'information au moment ou tu le coche dans ta liste view. Pour cela, tu te créé une collection, et a chaque fois que tu sélectionne un joueur, tu mets son numéro dans la collection. Ensuite tu "déroule" ta collection qui sera ordonnée comme tu le souhaite.
    - La dernière fois que j'ai testé ca fonctionnait !
    - Vous n'avez rien modifié ?
    - Non ! Je suis pas idiot non plus.
    - ....
    - Enfin si, juste le fichier .dll, mais a 4Ko, ca devait pas être important.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Préretraité
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Préretraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Points : 25
    Points
    25
    Par défaut
    Bonjour Nako_lito, le forum,

    Comment créer une collection et l'incorporer à mon code ?

    Cordialement
    margar

  4. #4
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    regarde un tuto sur les collection, ça t'aidera aussi a comprendre leur mécanisme : celui là par exemple

    sinon pour répondre simplement.

    Dans ton code, tu créé une variable de type collection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim _maCollection as collection
    et ensuite, tu peux rajouter un élément dans la collection avec la méthode .add, tu peux compter combien tu as d'élément dans la collection avec la méthode .count etc etc.

    Si tu as besoin de ta collection à plusieurs endroit dans ton programme, le mieux est de créé la variable globale. Ainsi, elle est utilisable de partout (attention aux réinitialisation et qui y accède).
    - La dernière fois que j'ai testé ca fonctionnait !
    - Vous n'avez rien modifié ?
    - Non ! Je suis pas idiot non plus.
    - ....
    - Enfin si, juste le fichier .dll, mais a 4Ko, ca devait pas être important.

Discussions similaires

  1. [XL-2010] Copier plage de cellules vers une autre feuille selon un critère dans une boucle
    Par klash384 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/01/2015, 17h53
  2. [XL-2007] recopie de cellules vers une autre feuille.
    Par dom66 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/02/2011, 22h15
  3. [XL-2003] copier en automatique le code d'un module d'une feuille EXCEL vers une autre feuille
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/05/2009, 00h13
  4. TextBox vers une autre feuille
    Par chrnoe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/01/2009, 22h01
  5. copier des cellule d'une feuille vers une autre feuille
    Par DIDIDIDA dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/04/2008, 12h13

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