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 :

creation d'un classeur "Analyse" à l'ouverture d'un userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 47
    Par défaut creation d'un classeur "Analyse" à l'ouverture d'un userform
    Bonjour à tous,

    Je souhaiterai recopier une Listview dans une feuille de calcul.

    J'ai compris que la première colonne de la Listview ne correspondait pas à l'indice 1 de ListSubItems.
    Cependant je ne parviens pas à faire ma boucle sur les lignes et colonnes que j'ai dans ma ListView...

    Est ce que quelqu’un sait pourquoi à la ligne 18 le message d'erreur suivant apparaît "Index out of bounds

    Merci à vous ...



    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
    Private Sub exportbtn_Click()
    Application.ScreenUpdating = False
    CreationClasseur
     
    Application.ScreenUpdating = True
     
    Dim i As Integer
    Dim a As String
    Dim b As String
    b = ActiveWorkbook.Name
    a = ActiveSheet.Name
        Workbooks(b).Activate
        Sheets(a).Select
    For i = 5 To AffichageSelection.ListItems.Count
     
    Sheets(a).Cells(i, 1) = AffichageSelection.ListItems(i).Text
    For j = 2 To AffichageSelection.ColumnHeaders.Count - 2
    Workbooks(b).Sheets(a).Cells(i, 3) = AffichageSelection.ListItems(i).ListSubItems(j).Text
      Next j
    Next i
     
    Unload Me
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Si j'ai bien compris, ta problématique est plutôt celle de parcourir et extraire les données de ta listbox (je modifierais à ta place volontiers le titre)
    Quoi qu'il en soit :
    - je crois comprendre que cette listbox se trouve sur un Userform
    - il a bien fallu qu'elle soit abondée par des valeurs, me semble-t-il
    - pourquoi alors la parcourir et non alimenter tes cellules de feuille de calcul en même temps que celles de la listbox ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 47
    Par défaut
    Bonjour unparia et merci pour ton retour rapide,

    J'ai un userform avec des combobox, des listbox, et des checkbox (*)

    Dans un premier temps je souhaite recopier l'ensembles des valeurs de ma base de données et au fil des sélections des champs de mes 3 éléments (*) je souhaite supprimer des lignes de ma ListView puis l'exporter.


    Je ne sais pas si c'est une bonne manière de procéder ou non ....

    Et reste ouvert à tes conseils ...

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Je vois mal ce que tu fabriques.
    Mais cet aspect est un aspect de conception et te regarde seul
    Je vais donc répondre par cet exemple à ta problématique (extraire, pour chaque ligne le contenu de toutes les cellules de ta listview) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 1 To ListView1.ListItems.Count
        MsgBox ListView1.ListItems(i) '-->> la valeur en première colonne
        For j = 1 To ListView1.ColumnHeaders.Count - 1
          MsgBox ListView1.ListItems(i).SubItems(j) ' -->> les valeurs en colonnes suivantes
        Next
      Next
    A toi d'utiliser tes instructions en lieu et place de l'affichage en msgbox.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 47
    Par défaut
    Merci unparia c'est propre et ça fonctionne

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

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