Excel VBA : segmenter un fichier et copier dans un nouveau
yannickroulin
Messages postés
3
Statut
Membre
-
yannickroulin Messages postés 3 Statut Membre -
yannickroulin Messages postés 3 Statut Membre -
Bonjour,
J'ai un feuille excel avec 3 colonnes :
1. Les noms de recettes
2. Les ingrédients
3. La préparation
Ces colonnes ne sont pas toujours pleines. Toutes les indications pour une recette se situent entre la ligne du nom de la recette et la ligne précédent le nom de la recette suivante.
J'essaie de créer un formulaire avec ListBox à selection multiple (qui contient les noms des recettes). L'utilisateur choisi les recettes qui l'intéresse et le programme doit recopier dans un nouveau fichier (toujours sur 3 colonnes) uniquement les recettes selectionnées les unes à la suite des autres.
J'ai pensé à utiliser un "Scripting.Dictionary". Les clefs étants les noms des recettes (qui apparaissent dans la ListBox), les valeurs étants des objets Range qui contiennent les zones de chaque recette à recopier.
Mes tentatives ont été infructueuses, j'ai bien peur d'avoir inutilement compliqué le problème dans mon approche.
Quelqu'un a-t-il une idée à me proposer?
Yannick
J'ai un feuille excel avec 3 colonnes :
1. Les noms de recettes
2. Les ingrédients
3. La préparation
Ces colonnes ne sont pas toujours pleines. Toutes les indications pour une recette se situent entre la ligne du nom de la recette et la ligne précédent le nom de la recette suivante.
J'essaie de créer un formulaire avec ListBox à selection multiple (qui contient les noms des recettes). L'utilisateur choisi les recettes qui l'intéresse et le programme doit recopier dans un nouveau fichier (toujours sur 3 colonnes) uniquement les recettes selectionnées les unes à la suite des autres.
J'ai pensé à utiliser un "Scripting.Dictionary". Les clefs étants les noms des recettes (qui apparaissent dans la ListBox), les valeurs étants des objets Range qui contiennent les zones de chaque recette à recopier.
Mes tentatives ont été infructueuses, j'ai bien peur d'avoir inutilement compliqué le problème dans mon approche.
Quelqu'un a-t-il une idée à me proposer?
Yannick
A voir également:
- Excel VBA : segmenter un fichier et copier dans un nouveau
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Déplacer colonne excel - Guide
4 réponses
Bonjour,
Pas sûr de l'intérêt d'un dictionary vu que tu n'as pas de doublon.
J'ai peut-être raté qcq chose mais je ferais comme ça :
eric
Pas sûr de l'intérêt d'un dictionary vu que tu n'as pas de doublon.
J'ai peut-être raté qcq chose mais je ferais comme ça :
Public Sub UserForm_initialize()
Dim dernLigne As Long, c As Range
With Sheets("Recettes")
dernLigne = .[A:A].Cells(Rows.Count, 1).End(xlUp).Row
ListBox1.Clear
For Each c In .Range("A3:A" & dernLigne).SpecialCells(xlCellTypeConstants, 23)
ListBox1.AddItem c
Next c
End With
End Sub qui permet de ne boucler que sur les cellules utiles.
eric
Bonjour,
Peut-être qu'avec un fichier de travail avec ce que tu as fait on arrivera à réfléchir.
Déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
eric
Peut-être qu'avec un fichier de travail avec ce que tu as fait on arrivera à réfléchir.
Déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
eric
Bonjour,
j'ai réussi à résoudre une bonne partie du problème : je n'avais pas déclaré mon "Scripting.Dictionary" dans un module standard ce qui fait que la portée de cet objet était insuffisante. Néanmoins je trouve mon code fichtrement compliqué.
Pour info :
https://www.cjoint.com/?BLliNUBzi3e
Salutations
Yannick
j'ai réussi à résoudre une bonne partie du problème : je n'avais pas déclaré mon "Scripting.Dictionary" dans un module standard ce qui fait que la portée de cet objet était insuffisante. Néanmoins je trouve mon code fichtrement compliqué.
Pour info :
https://www.cjoint.com/?BLliNUBzi3e
Salutations
Yannick