> Tous les forums > Forum Bureautique
 VBA copier une feuille dans un autre classeurSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Kassie
  Posté le 06/06/2019 @ 21:40 
Aller en bas de la page 
Petite astucienne

Bonjour à tous,

J'ai un nouveau projet à monter et malheureusement, malgré mes recherches et multiples essais, ça ne fonctionne pas. Je demande donc votre aide pour y voir clair, svp.

J'ai des factures mensuelles que je souhaite copier dans un classeur de sommaire pour ensuite pouvoir faire différents calculs.

La feuille a copier n'ayant jamais le même nom, je tente l'utilisation d'une boite texte pour définir le nom du classeur à importer. Voici ce que j'ai jusqu'à maintenant, malheureusement non fonctionnel :

Sub CopierDansSommaire()

Dim NomClasseur As String

Dim FactureMensuelle As Workbook

Dim Sommaire As Workbook

Dim FeuilleFacture As Worksheet

NomClasseur = InputBox("Quel est le nom du classeur ouvert d'où proviennent les données?")

Set FactureMensuelle = Workbooks(NomClasseur)

Set Sommaire = Workbooks("SOMMAIRE_Elus.xls")

For Each FeuilleFacture In FactureMensuelle.Sheets

FeuilleFacture.Copy After:=Workbooks("SOMMAIRE_Elus.xls").Sheets(Sommaire.Sheets.Count)

Next

End Sub

Je demande la copie à la fin des feuilles dans ce code, ne sachant pas comment le faire sur la feuille active. Si c'était possible de l'envoyer dans la feuille active de Sommaire, comme ça je pourrais me positionner sur la bonne feuille (dans le fond je n'ai besoin et il n'y a qu'une feuille dans FactureMensuelle). Je pourrais ainsi préparer mes onglets des 12 mois d'avance.

Un gros gros merci d'avance les astuciens !

Publicité
Kassie
 Posté le 10/06/2019 à 15:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour,

Non non, elle n'a pas disparu, elle était seulement retenue hors du monde informatique quelques jours. La revoici avec la ferme intention de produire quelque chose de correct et fonctionnel... avec votre aide tant appréciée !

Voici réponse aux questions:

1- Il s'agit en effet de copier à partir d'un classeur (Facture) qui n'a jamais le même nom. Le nom de ce classeur est défini par le fournisseur de service selon le mois de facturation et le groupe facturé.

2- Il n'y a toujours qu'une seule feuille par "Facture" et elle s'appelle "Informations détaillées" (si ça peut être utile...)

3- Le code VBA se trouve dans le classeur Sommaire. J'ai un classeur sommaire par groupe (j'utiliserai le même code pour mes différents classeurs Sommaire. Ex: Sommaires - Cadres - 2019)

4- La feuille active est l'endroit où je veux importer mes données "Facture". Je comptais préparer mes 12 onglets mensuels, me positionner sur la feuille à importer (ex: juin) et l'importer à cet endroit. Peut-être est-ce plus simple de l'importer à la fin et de renommer mon onglet créé à l'importation ?

Debrief, je te remercie de ton aide généreuse. Je vais analyser et comprendre tes fichiers joints dès à présent.

Kassie
 Posté le 10/06/2019 à 16:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

J'ai été lire et farfouiller dans le code du classeur que tu as inclus. Ouille ! Je ne comprends pas grand chose quand on tombe au "Bolean" et variables. J'aimerais tant pourtant ! Je dois vraiment mettre sur ma "toDo" d'apprendre à écrire du VBA comma ça.

J'ai tout de même réussi à faire ce que je voulais en simplifiant le tout à l'extrême et repartant de ma macro de base. Voici ce que ça donne.

Sub CopierDansSommaire()

Dim NomClasseur As String

Dim FactureMensuelle As Workbook

Dim Sommaire As Workbook

Dim FeuilleFacture As Worksheet

NomClasseur = InputBox("Quel est le nom du classeur ouvert d'où proviennent les données(avec.xlsx)?")

Set FactureMensuelle = Workbooks(NomClasseur)

Set Sommaire = Workbooks("SOMMAIRE_Elus.xlsm")

For Each FeuilleFacture In FactureMensuelle.Sheets

FeuilleFacture.Copy After:=Workbooks("SOMMAIRE_Elus.xlsm").Sheets(Sommaire.Sheets.Count)

Next

Sheets("Informations détaillées").Name = InputBox("Quel est le mois importé?")

End Sub

C'est amplement suffisant pour importer mes données. Reste maintenant à compiler le tout dans sommaire, selon le numéro d'employé...

Par contre, idéalement, j'aimerais que cette macro ouvre le classeur nécessaire plutôt que demander lequel est ouvert. Je n'arrive pas à décortiquer ton code pour n'utiliser que la portion nécessaire, sans marquer le nom du classeur dans une case. Veux-tu m'aider pour cette portion svp ?

Un immense merci et je garde précieusement ton classeur pour l'étudier et arriver à le comprendre !



Modifié par Kassie le 10/06/2019 16:44
Kassie
 Posté le 10/06/2019 à 19:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Merci, j'intègre ça immédiatement dans mon code et je teste.

Pour le sommaire, j'ai créé une nouvelle question, pour ne pas mêler les cartes. https://forum.pcastuces.com/sommaire___vba-f23s40018.htm

Merci encore !

Kassie
 Posté le 10/06/2019 à 20:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Je ne connais pas bien la logique de ton affaire mais rien ne t'empêche de saisir le nom de la feuille que tu viens de copier et de la renommer avec ce nom saisi. Ou si c'est des noms de mois, donner son numéro et générer son nom.Donc tu n'importe pas "sur" la feuille, tu importes "une" feuille que tu nommes de la manière qui te plait.

C'est ce que je fais avec la dernière mouture. Merci !

Par contre, le OpenWorkbook, je n'y arrive pas. Ce doit être tout bête mais non, je n'y arrive pas. Voudrais-tu me clarifier le tout svp, quoi ajouter et où?

merci

Kassie
 Posté le 10/06/2019 à 21:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

En dernière mouture (J'ai continué à bosser dessus et à tenter de comprendre) j'arrive à ouvrir le fichier de facture mais pas réutiliser la variable NomClasseur dans la macro, même en la déclarant publique. J'ai définitivement besoin d'un cours et je vais aller le chercher! En attendant, merci encore et encore pour ton aide.

Voici le classeur Sommaire: https://www.cjoint.com/c/IFktN5wuTAw

Et voici un exemple de facture: https://www.cjoint.com/c/IFktQOjVKyw

Kassie
 Posté le 11/06/2019 à 16:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

C'est absolument PARFAIT !

Un immense MERCI Debrief pour ton aide, elle m'est précieuse. Je ne sais comment t'exprimer plus complètement ma gratitude!

Bonne journée !

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Furet Déboucheur de Canalisation Vevor 7,62 m avec tige pour perceuse
19,90 € 25,99 € -23%
@Amazon
Déshumidificateur HUMILABS OL12-BD031A (12L/24h, réservoir 2L, 35m2)
79 € 139 € -43%
@Geekbuying
Enceinte bluetooth Anker Soundcore Motion Boom
59,84 € 89,99 € -34%
@Amazon
PC portable Lenovo 15.3 pouces LOQ 15IRX10 (WUXGA IPS 165 Hz, Intel Core i7-13650HX, 32 Go RAM DDR5, SSD 512 Go, RTX 5070 115W 8 Go) + sac à dos
1299,99 € 1699 € -23%
@Cdiscount
Ecran PC 32 pouces MSI MAG 321UPX (4K, OLED, 240 Hz, 1 ms)
649,99 € 880 € -26%
@Amazon Espagne
Mini PC Acemagic K1 (Intel Core i5-12600H, 16 Go RAM, SSD NVMe 512 Go,WiFi 6, Windows 11)
399,61 € 449 € -11%
@Amazon

Sujets relatifs
Excel 2007 Copier/Coller d’une feuille à l’autre Dans un même classeur.
Macro VBa copier /coller dans autre feuille a modifier ??
copier une cellule dans un autre classeur
Déplacer une feuille dans un autre classeur
copier une feuille dans un classeur
Copier 1 feuille xls dans un autre fichier
copier un dossier calc de 15 feuilles dans un autre dossier calc
Copier une plage excel vers une autre feuille
mettre un tableau d'un classeur dans un autre classeur
Afficher tableau dans une ListBox sur une autre feuille
Plus de sujets relatifs à VBA copier une feuille dans un autre classeur
 > Tous les forums > Forum Bureautique