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 :

Données listview extraction du contenu [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur maintenance industriel
    Inscrit en
    Juin 2018
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur maintenance industriel
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 185
    Par défaut Données listview extraction du contenu
    Bonjour,

    J'ai une listview dans le qu'elle j'affiche des données filtré. j'ai 9 colonne dans cette listview et je voudrais extraire l'intégralité des 9 colonnes et des X lignes dans un autre fichier Excel. C'est à dire que j'obtiendrais un autre fichier avec en feuille1 un tableau avec les même en-tête et même ligne que ce que ma listview affiche.
    le listview s'appel LVResut
    j'ai bien essayer de tenter cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CommandButton1_Click()
     Dim WkNouveau As Workbook, ShNouveau As Worksheet
     Set WkNouveau = Workbooks.Add
     Set ShNouveau = WkNouveau.Sheets(1)
     ShNouveau.Name = "Base"
     With ShNouveau
         .Cells(1, 1).Resize(LVResult.ListCount, 1).Value = LVResult.Item.list
     End With
    End Sub
    Mais cela ne fonctionne pas ..
    si cela pouvais l'enregistrer à un endroits précis et le fermer automatiquement cela serais formidable.

    Cordialement,
    Passepartout007

  2. #2
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut
    Bonjour Passepartout007,

    Avant de répondre à ta demande, j'ai quelques questions à te poser pour mieux comprendre cette demande :

    Quel est ton besoin avec cette liste ? Est-ce que tu récupères les données filtrées d'un autre fichier ?
    Est-ce qu'il y a une autre macro qui serait en lien avec le résultat de ta liste ?
    Que contient exactement la liste de ton programme : des nombres ? du texte ? Ou les 2 ?
    Quelle est sa capacité (ex : 100 lignes, 9 colonnes) ?

    Je me trompe peut-être mais j'ai l'impression que tu n'es pas obligé de passer par une liste pour récupérer les données filtrées et ensuite les insérer dans un nouveau fichier.

    Merci d'avance pour les réponses à mes questions,
    Cordialement,
    BDA53

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur maintenance industriel
    Inscrit en
    Juin 2018
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur maintenance industriel
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 185
    Par défaut Re : présision du contexte
    Bonjour,

    Actuellement la listview est alimenter à l'aide d'une macro assez complexe qui tris la base de données, qui est un tableau Excel de plus de 4200 ligne.
    La listview peux donc avoir plus de 4200 ligne.
    J'aimerais juste que ce qui est afficher dans la listview soit exportable vers un autre ficher quand l'on clic sur un bouton.
    Il y a plusieurs type de colonne,
    - des colonnes ou l'on retrouver des numéros
    - des colonnes ou l'on retrouve du texte
    - des colonne ou l'on retrouve des dates

    Je ne veux pas que l'exportation se fasse à chaque fois c'est pour cela que je souhaite mettre cette commande sur un bouton.

    Voila un peux la situation.
    Cordialement,
    Passepartout007

  4. #4
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut
    D'accord je comprends mieux. Tu peux utiliser une boucle for sur les lignes et une boucle for sur les colonnes de ta listview.
    Voici une proposition de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton1_Click()
    Dim WkNouveau As Workbook, ShNouveau As Worksheet
    Dim ligne, colonne As Integer 
    Set WkNouveau = Workbooks.Add
    Set ShNouveau = WkNouveau.Sheets(1)
    ShNouveau.Name = "Base"
     
    For ligne = 1 to LVResult.ListCount
    	For colonne = 0 to 8
    		ShNouveau.Cells(ligne, colonne) = LVResult.ListItems(ligne).ListSubItems(colonne)
    	Next colonne
    Next ligne
     
    End Sub
    Est-ce que tu peux tester si cela fonctionne dans ton fichier excel ?

    Je reste disponible pour tout complément d'informations sur ce commentaire,
    BDA 53

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur maintenance industriel
    Inscrit en
    Juin 2018
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur maintenance industriel
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2018
    Messages : 185
    Par défaut Re résolution de bug
    Bonjour,

    Je suis en base listeview 1 1
    donc la colonne indice 0 n'existe pas et la colonne indice 1 indique la deuxième colonne du coup le code me renvoi une erreur "Index out of bounds".

    j'ai donc penser qu'en faisans cela :
    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
    Private Sub CommandButton1_Click()
    Dim WkNouveau As Workbook, ShNouveau As Worksheet
    Dim ligne, colonne As Integer
    Set WkNouveau = Workbooks.Add
    Set ShNouveau = WkNouveau.Sheets(1)
    ShNouveau.Name = "Base"
     
    For ligne = 1 To LVResult.ListItems.Count
        For colonne = 0 To 8
            If colonne = 0 Then
            ShNouveau.Cells(ligne, colonne) = LVResult.ListItems(ligne).ListSubItems
            End If
            If colonne > 0 Then
            ShNouveau.Cells(ligne, colonne) = LVResult.ListItems(ligne).ListSubItems(colonne)
            End If
        Next colonne
    Next ligne
    End Sub
    Le code allait prendre la colonne 0 par défaux et donc plus pauser problème cependant il me renvoi l'érreur suivant : " Erreur définie par l'application ou par l'object sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShNouveau.Cells(ligne, colonne) = LVResult.ListItems(ligne).ListSubItems

    Il y a-t-il une solution ?
    Cordialement,
    Passepartout007

  6. #6
    Membre expérimenté

    Homme Profil pro
    Technical Account Manager
    Inscrit en
    Avril 2015
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technical Account Manager

    Informations forums :
    Inscription : Avril 2015
    Messages : 224
    Billets dans le blog
    1
    Par défaut
    Ah oui ça change un peu la donne sur la listeview haha
    Il faut un indice à la propriété ListSubItems c'est pour ça que la macro te retourne une erreur à cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShNouveau.Cells(ligne, colonne) = LVResult.ListItems(ligne).ListSubItems
    Du coup dans le code si tu la remplaces par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShNouveau.Cells(ligne, colonne) = LVResult.ListItems(ligne)
    Est-ce que ça fonctionne maintenant ?

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

Discussions similaires

  1. [XSLT 1.0] Extraction de contenu de mon xml : données manquantes
    Par infotana dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 31/10/2014, 15h25
  2. Extraction de contenu de cellules pour affichage
    Par Coulag dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 27/07/2007, 19h40
  3. extraction de contenu
    Par kimcharlene dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 24/04/2007, 19h37
  4. Remplir une ListView avec le contenu d'une requête
    Par callo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/10/2006, 08h44
  5. [vb.net] données listview
    Par iamunknown dans le forum Windows Forms
    Réponses: 7
    Dernier message: 04/02/2006, 17h35

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