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 :

Copie multi selection dans listbox et incrémentation 1er no


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Novembre 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 38
    Points : 22
    Points
    22
    Par défaut Copie multi selection dans listbox et incrémentation 1er no
    Bonjour

    J'ai une listbox dans un userform dans laquelle je veux effectuer une multi selection avec incrémentation du 1er no pour copier les lignes relatives
    Voici joint le code mais le souci c'est que ça fonctionne bien pour la 1ere ligne copiée mais pour les autre j'ai le même no!!!!
    Il y a surement une boucle a intégrer avec ce code mais là je cale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     .Cells(Ligneacopier, 1) = .Range("a" & II).Value + 1
    ci joint une copie d'écranNom : pb incrementation.PNG
Affichages : 221
Taille : 11,9 Ko

    J'espere avoir été assez clair
    Merci d'avance

    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
    Private Sub CommandButton6_Click() '**************bouton copier
    Dim I As LongPtr
    Dim II As LongPtr
    Dim Ligneacopier As Integer
     
     
    If Sheets("data").Range("a2").Value = "" Then
    II = 1
    Sheets("data").Range("a2").Value = "1"
    Else
    II = Sheets("data").Range("a1").End(xlDown).Row
    End If
     
     
        For I = 0 To lst_personnes.ListCount - 1
          If lst_personnes.Selected(I) = True Then
             With Sheets("data")
                Ligneacopier = .Range("A" & Rows.Count).End(xlUp).Row + 1
     
                 .Cells(Ligneacopier, 1) = .Range("a" & II).Value + 1 'fonctionne pour la 1ere ligne sélectionné mais donne le même no aux autre lignes 
                 .Cells(Ligneacopier, 2) = Format(Label101.Caption, "mm/dd/yy")
                 .Cells(Ligneacopier, 3) = lst_personnes.List(I, 2)
                 .Cells(Ligneacopier, 4) = lst_personnes.List(I, 3)
                .Cells(Ligneacopier, 5) = lst_personnes.List(I, 4)
             End With
          End If
        Next I
     
     
    End Sub
    Phileas

  2. #2
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Novembre 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 38
    Points : 22
    Points
    22
    Par défaut ????
    Toujours pas de solution ??
    ah oui j'oubliais , impossible de basculer en listview car notre environnement est en 64 Bits ; grrrrrrrrrrrrr

    merci d'avance
    Phileas

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 931
    Points : 5 152
    Points
    5 152
    Par défaut
    bonsoir
    avant d'entrer dans la boucle vous fixer ce "II" avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Sheets("data").Range("a2").Value = "" Then
    II = 1
    Sheets("data").Range("a2").Value = "1"
    Else
    II = Sheets("data").Range("a1").End(xlDown).Row
    End If
    donc ce qui est évident que dans la boucle la valeur reste celui de "II"

    essayer d'ajouter 1 à la valeur de "II"

    peut être comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    For I = 0 To lst_personnes.ListCount - 1
          If lst_personnes.Selected(I) = True Then
             With Sheets("data")
                Ligneacopier = .Range("A" & Rows.Count).End(xlUp).Row + 1
     
                 .Cells(Ligneacopier, 1) = .Range("a" & II).Value + 1 
                 .Cells(Ligneacopier, 2) = Format(Label101.Caption, "mm/dd/yy")
                 .Cells(Ligneacopier, 3) = lst_personnes.List(I, 2)
                 .Cells(Ligneacopier, 4) = lst_personnes.List(I, 3)
                .Cells(Ligneacopier, 5) = lst_personnes.List(I, 4)
             End With
          End If
        II=II+1
        Next I

  4. #4
    Membre à l'essai
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Novembre 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Rédacteur technique

    Informations forums :
    Inscription : Novembre 2014
    Messages : 38
    Points : 22
    Points
    22
    Par défaut
    Bonjour BENNASR

    et merci mais ça ne fonctionne pas !!
    Le résultat n'incrémente pas les no , cela me donne des no de début de liste 1-2; etc au lieu de 12-13 , etc.

    bonne journée
    Philéas

  5. #5
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 931
    Points : 5 152
    Points
    5 152
    Par défaut
    merci de joindre un fichier test avec données fictives pour voir de près

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. Multi selection dans un datagridview
    Par gilles_906 dans le forum VB.NET
    Réponses: 8
    Dernier message: 14/12/2011, 10h23
  3. Réponses: 5
    Dernier message: 09/07/2007, 19h07
  4. Parcours d'un multi select dans une filelistbox
    Par tomy29 dans le forum Delphi
    Réponses: 7
    Dernier message: 29/12/2006, 10h04
  5. Multi selection dans un TbdGrid
    Par LolHol dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/10/2005, 10h23

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