[VB.NET -> VBA] Extraire et Regrouper des Feuilles venants de Classeurs différen

pasterlouis - 3 juin 2013 à 22:44
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 6 juin 2013 à 00:28
Bonjour tout le monde,
J'ai plusieurs fichiers et j'ai besoin de créer un nouveau classeur qui va regrouper des feuilles venants de chacun de mes fichiers. Pour cela j'ai un classeur du nom de "référence" et dans lequel en colonne A il y'a la liste des fichiers et en colonne B les onglets qu'il faut extraire du fichier correspondant. Par exemple:
colonne A colonne B
Ficher A onglet1
onglet2

Ficher B onglet1
onglet2

Ficher C onglet1
onglet2
onglet3
Donc je voudrais une macro qui va aller me chercher dans le fichier A les onglets figurant en face(en colonne B), pareil dans le fichier B et C et me mettre tous ces feuilles dans un seul nouveau classeur
Je vous remercie par avance de vos aides

30 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 juin 2013 à 23:03
Bonjour,
1) Je suppose que tu n'as pas lu le règlement de ce forum, puisque tu écris :
Donc je voudrais une macro

sans montrer ce que tu as au moins tenté d'écrire pour y parvenir.
2) qu'est-ce qui te laisse penser qu'une macro/VBA/Excel est du :
Forum > VB.NET et VB 2005

qui n'(a absolument rien à voir, ni d près, ni de loin, avec la section >Langages dérivés > VBA
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Utilisateur anonyme
4 juin 2013 à 01:50
Bonjour,
Hé bien, maintenant qu'un (gentil) modérateur t'as casé dans la bonne section la réponse est simple:

Tu prends plusieurs fichiers tout en créant un nouveau classeur qui va regrouper des feuilles avenantes de chacun de ces fichiers. Pour cela tu as un classeur du nom de "référence" et dans lequel en colonne A il y'a la liste des fichiers et en colonne B les onglets qu'il faudra extraire du fichier correspondant.
Tu obtiendras donc une macro qui va aller te chercher dans le fichier A les onglets figurant en face (en colonne B), pareil dans le fichier B et C et te mettre toutes ces feuilles dans un seul nouveau classeur tout frais.


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
4 juin 2013 à 02:00
Bonjour,

Je vous remercie par avance de vos aides.


L'enregistreur de macros pour une seule feuille. Une boucle for each pour encadrer la macro pour une feuille.
0
Merci ucfoutu pour les reproches, ils sont bien fondées. En fait concernant l'emplacement, je suis nouveau sur le forum du coup dans la liste déroulante qui m'a été proposé en postant le message il n'y a pas de VBA c'est pour cela que j'ai choisi un peu par hasard, ensuite pour le fait que j'ai pas posté un bout de code c'est parce que je sui un grand débutant et je n'arrive même pas à démarrer c'est pour cela que je sollicite l'aide dan ce forum et merci d'ailleurs pour ce qui ont compris et qui ont répondu à cet effet.
"active" et "comarcotte" j'ai essayé avec l'enrégistreur mais ça ne m'aide pas car j'ai un petit bout de code du genre:

sheets("nomfeuille").select
sheets("nomfeuille").copy

et c'est tout. si vous pouvez m'aider encore en postant un début de code ou un bout de code. Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
4 juin 2013 à 14:09
Bonjour,
"active" "acive" et "comarcotte" "cmarcotte" j'ai essayé avec l'enrégistreur mais ça ne m'aide pas car j'ai un petit bout de code du genre:
sheets("nomfeuille").select
sheets("nomfeuille").copy


Ça c'est du début de code, la tu sélectionnes une feuille et tu fais une copie de celle-ci, et après?

Ce que je voulais dire c'est que tu dois reformuler ta question, tu nous parles de fichiers => quel type de fichiers?
Onglets => d'où ils viennent ces onglets?

Essaye de mettre de l'ordre et explique étape par étape clairement.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
en fait j'ai un classeur de référence dans lequel il est écrit en colonne A les noms de mes fichiers et devant chaque fichier(en colonne B ) est inscrit les onglets que je veux extraire du fichier correspondant. je veux que la macro aille dans ce fichier et me copier l'onglet dans le fichier correspondant et me le coller dans un nouveau classeur qu'elle me créera
NB: le classeur de référence contient aussi plusieurs onglets mais j'ai déja créé une listbox qui me permet de selectionner l'onglet que je veux utiliser comme référence. les fichiers sur lesquel je veux extraire les onglets ainsi que le classeur de référence se trouvent dans un dossier du bureau
Encore Merci
0
Utilisateur anonyme
4 juin 2013 à 15:39
C'est peut-être moi qui s'exprime mal...

j'ai un classeur de référence dans lequel il est écrit en colonne A les noms de mes fichiers
==>> quels fichiers? un classeur Excel, un fichier texte, une base de données access, un bitmap ???
devant chaque fichier(en colonne B ) est inscrit les onglets que je veux extraire du fichier correspondant.
==>> s'agit-il des onglets issus d'un TabStrip, des valeurs d'une quelconque cellule, ou je ne sais quoi d'autre que tu appelles "onglets" ???
les fichiers sur lesquel je veux extraire les onglets ainsi que le classeur de référence se trouvent dans un dossier du bureau

Bon au moins on a avancé sur ce point, le chemin d'accès aux fichiers sera:
"C:\Users" & Environ("USERNAME") & "\desktop"

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
merci acive. en fait tout mes fichiers sont des classeurs excel. en suite quand je parle d'onglets je fait allusion a des feuilles excel(c'est à dire les feuilles qui composent mon/mes classeur excel)
0
c'est tout du excel et je veux le faire par une macro VBA
0
Utilisateur anonyme
4 juin 2013 à 16:57
Alors il y a quelque chose qui ne colle pas:
devant chaque fichier(en colonne B ) est inscrit les onglets que je veux extraire


Tu veux inscrire le contenu d'une Feuille entière dans une cellule de la colone B ???

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 juin 2013 à 19:09
Un salut à acive.
On y verra plus clair lorsqu'il aura fait ce qui lui a été demandé === >>
Je suppose que tu n'as pas lu le règlement de ce forum, puisque tu écris :
"Donc je voudrais une macro"
sans montrer ce que tu as au moins tenté d'écrire pour y parvenir .

Nous n'avons pas encore vu la moindre ligne de code écrit pour tenter d'y parvenir

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 juin 2013 à 19:12
Nous n'avons même pas vu la partie la plus simple, à savoir le parcours de la feuille de son classeur références pour y lire ce qu'il doit y lire, avant même de traiter le reste ! Rien de rien !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
non acive je veux seulement copier la feuille concernée et la coller dns un nouveau classeur.
0
Utilisateur anonyme
4 juin 2013 à 21:38
Salut Ucfoutu,
Oui, mais pour l'instant j'essaye d'établir son "cahier des charges" correctement, clairement , ou du moins comprendre ce qu'il veut faire

Son code est l'étape qui suit, (ce qui nous rassure car il a dit "j'ai déja créé une listbox qui me permet de selectionner l'onglet que je veux utiliser")

pasterlouis, montre donc ce que tu as déjà fait comme code alors (pour mieux comprendre ton raisonnement).

Ceci-dit, si tu aurais fait une recherche sur le site, comme le dit le règlement, ce sujet à été traité récemment SUR CE POST.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 juin 2013 à 21:46
Que serait dans cette affaire une listbox, si ce n'était qu'un tremplin inutile et alourdissant ? ===>> rien d'autre.
S'il l'a de surcroît liée à une plage de sa feuille de son classeur "références", par ailleurs, il n'aura eu besoin d'aucun code pour l'alimenter (juste donner une valeur de propriété, en mode création) ....
Wait and see, donc ...


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Utilisateur anonyme
5 juin 2013 à 01:32
Wait and see, donc ...


Moi (tu as du le remarquer) je suis "bête et discipliné".. il veux une macro et un listbox; va pour la macro avec listbox!...

Après si ça ne donne pas le résultat attendu, c'est autre chose, ce n'est pas tout à fait de mon ressort, car ce n'est pas moi qui a choisi la méthode...
A moi aussi, ça m'arrive (même souvent) de prendre les mauvais outils, mais je suis toujours prêt à tout recommencer depuis le début s'il le faut.

Et puis on constate souvent sur ce site que les avis des "anciens" et "moins jeunes" programmeurs (ou du moins plus expérimentés) sont rarement suivis... à quoi bon alors ??

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juin 2013 à 07:50
Regardons de plus près ce qu'est cette fameuse listbox : ===>>
Située quelque part (une feuille de calcul ou un userform) de son classeur "références", elle ne fait que "recenser" les autres feuilles de calcul de ce même classeur. En d'autres termes : elle n'est rien d'autre que l'équivalent de la barre des onglets (déjà présente) du classeur "références". Choisir dans cette listbox un de ses articles = cliquer sur un des onglets de la barre d'onglets du classeur "références" et c'est tout.
Rien donc, à ce stade-là qui concerne le travail à faire : "Regrouper des Feuilles venants de Classeurs différents" (classeurs et feuilles en cause figurant en colonnes A et B de la feuille de calcul choisie du classeur "références").
Pour être clair : son stade actuel est tout simplement celui du choix d'un onglet dans lequel se trouvent (en colonne A et B) les noms de classeurs et feuilles à traiter. C'est à dire qu'il est au point zéro de son véritable travail (parcourir en boucle les lignes et colonnes de cet onglet-là pour relever les noms de classeurs et feuilles à regrouper).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juin 2013 à 08:44
Pour être encore plus clair=== > on reprend son tout premier message :
Pour cela j'ai un classeur du nom de "référence" et dans lequel en colonne A il y'a la liste des fichiers et en colonne B les onglets qu'il faut extraire du fichier correspondant

et on le complète ainsi :
Pour cela j'ai un classeur du nom de "référence" et dans lequel, sur une feuille spécifiée , en colonne A il y'a la liste des fichiers et en colonne B les onglets qu'il faut extraire du fichier correspondant

la "feuille spécifiée" est celle sélectionnée dans sa listbox.
Toutes les autres explications n'ont fait que s'écarter de son problème.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
voici ce qui me permet de lister le nom des onglet du fichier "référence" dans ma lisbox.
encore merci


Private Sub CommandButton5_Click()

Set appExcel = CreateObject("Excel.Application")
appExcel.Workbooks.Open Filename:="C:\Documents and Settings\paster\Desktop\dossier\référence.xls"
Dim feuille As Object
Dim i As Integer

For i = 1 To appExcel.Sheets.Count
With Me.ListBox1
.AddItem appExcel.Sheets(i).Name
End With
Next
End Sub
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 juin 2013 à 09:31
Oui.
Bon ...
Cela ne change donc absolument rien à ce que je viens de dire ! Ne fait même que le confirmer.
Tu en es donc encore au point zéro de ce que tu cherches à faire à partir des données de la feuille ainsi sélectionnée.
On attend, à partir de là, ton tout premier pas en vue de déterminer (lecture en boucle des données de la feuille sélectionnée) quel classeur/feuilles tu dois regrouper ! au moins cet effort-là, s'il te plait ! Et cet effort ne nécessite que des notions de base (lecture en boucle d'une plage) très élémentaires et retrouvées dans plus de 80% des discussions VBA/Excel ouvertes sur ce forum !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Rejoignez-nous