Copie classeur ferme vers classeur tampon
Résolu
anais890313
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
anais890313 Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
anais890313 Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
je suis débutante en vba et je tourne en rond depuis quelques jours donc je fais de nouveau appel à votre savoir, en espérant que vous pourrez m'aider.
j'ai 6 classeurs différents pour chaque employé (placés dans le meme repertoire) :
BLONDELCL.xls
CASOLACL.xls
MANSIERCL.xls
MOULINECCL.xls
ROYCL.xls
ROSSETTICL.xls
et un classeur tampon ou toutes les données devront etre regroupées :
RECUP.xls
A l'interieur de chaque classeur employé se trouve un onglet BD (onglet sur lequel je dois récuperer les données)
Dans cet onglet BD :
le premier enregistrement débute en cellule A3
le nombre d'enregistrement est appelé à varier il est donc important que ma macro trouve la derniere ligne non vide
je voudrais :
récuperer les données de l'onglet BD dans chaque fichier (A3 à U"...")
les coller les uns à la suite des autres dans mon classeur tampon dans l'onglet bd
je voudais que les classeurs restent fermés pendant la copie et que la manipulation se fasse à l'aide d'un bouton sur l'onglet BD
voici le code engagé :
Désolé pour le code surement grossier ....
Merci par avance pour votre aide
je suis débutante en vba et je tourne en rond depuis quelques jours donc je fais de nouveau appel à votre savoir, en espérant que vous pourrez m'aider.
j'ai 6 classeurs différents pour chaque employé (placés dans le meme repertoire) :
BLONDELCL.xls
CASOLACL.xls
MANSIERCL.xls
MOULINECCL.xls
ROYCL.xls
ROSSETTICL.xls
et un classeur tampon ou toutes les données devront etre regroupées :
RECUP.xls
A l'interieur de chaque classeur employé se trouve un onglet BD (onglet sur lequel je dois récuperer les données)
Dans cet onglet BD :
le premier enregistrement débute en cellule A3
le nombre d'enregistrement est appelé à varier il est donc important que ma macro trouve la derniere ligne non vide
je voudrais :
récuperer les données de l'onglet BD dans chaque fichier (A3 à U"...")
les coller les uns à la suite des autres dans mon classeur tampon dans l'onglet bd
je voudais que les classeurs restent fermés pendant la copie et que la manipulation se fasse à l'aide d'un bouton sur l'onglet BD
voici le code engagé :
Sub COPIE_feuille() Dim BLONDELCL_source As Workbooks Dim CASOLACL_source As Workbooks Dim MANSIERCL_source As Workbooks Dim MOULINECCL_source As Workbooks Dim ROYCL_source As Workbooks Dim ROSSETTICL_source As Workbooks Dim RECUP_target As Workbooks Dim RECUP_feuille As Worksheets Dim cellBLO_source_1er As Range Dim cellBLO_source_der As Range Dim cellCAS_source_1er As Range Dim cellCAS_source_der As Range Dim cellMAN_source_1er As Range Dim cellMAN_source_der As Range Dim cellMOU_source_1er As Range Dim cellMOU_source_der As Range Dim cellROY_source_1er As Range Dim cellROY_source_der As Range Dim cellROSS_source_1er As Range Dim cellROSS_source_der As Range Dim cell_target As Range Set BLONDELCL_source = Workbooks("A:\Commerciaux\reporting mensuel des commerciaux\Nouveau reporting1\Nouveau REPORTING MENSUEL COMMERCIAUX BLONDEL HUGUES").Worksheets("BD") Set CASOLACL_source = Workbooks("A:\Commerciaux\reporting mensuel des commerciaux\Nouveau reporting1\Nouveau REPORTING MENSUEL COMMERCIAUX CASOLA HAROLD").Worksheets("BD") Set MANSIERCL_source = Workbooks("A:\Commerciaux\reporting mensuel des commerciaux\Nouveau reporting1\Nouveau REPORTING MENSUEL COMMERCIAUX VALERIE MANSIER").Worksheets("BD") Set MOULINECCL_source = Workbooks("A:\Commerciaux\reporting mensuel des commerciaux\Nouveau reporting1\Nouveau REPORTING MENSUEL COMMERCIAUX MOULINEC DAN").Worksheets("BD") Set ROYCL_source = Workbooks("A:\Commerciaux\reporting mensuel des commerciaux\Nouveau reporting1\Nouveau REPORTING MENSUEL COMMERCIAUX ROY KARINE").Worksheets("BD") Set ROSSETTICL_source = Workbooks("A:\Commerciaux\reporting mensuel des commerciaux\Nouveau reporting1\Nouveau REPORTING MENSUEL COMMERCIAUX ROSSETTI NICOLE").Worksheets("BD") Set RECUP_target = Worksheets("BD") Set cellBLO_source_1er = BLONDELCL_source("A3").Range Set cellBLO_source_der = cellBLO_source_1er.End(xlDown) Set cellCAS_source_1er = CASOLACL_source("A3").Range Set cellCAS_source_der = cellCAS_source_1er.End(xlDown) Set cellMAN_source_1er = MANSIERCL_source("A3").Range Set cellMAN_source_der = cellMAN_source_1er.End(xlDown) Set cellMOU_source_1er = MOULINECCL_source("A3").Range Set cellMOU_source_der = cellMOU_source_1er.End(xlDown) Set cellROY_source_1er = ROYCL_source("A3").Range Set cellROY_source_der = cellROY_source_1er.End(xlDown) Set cellROSS_source_1er = ROSSETTICL_source("A3").Range Set cellROSS_source_der = cellROSS_source_1er.End(xlDown) Set cell_target = RECUP_feuille.Range("A3").End(xlDown).Row + 1 BLONDELCL_source.Range(cellBLO_source_1er, cellBLO_source_der).Copy cell_target CASOLACL_source.Range(cellCAS_source_1er, cellCAS_source_der).Copy cell_target MANSIERCL_source.Range(cellMAN_source_1er, cellMAN_source_der).Copy cell_target MOULINECCL_source.Range(cellMOU_source_1er, cellMOU_source_der).Copy cell_target ROYCL_source.Range(cellROY_source_1er, cellROY_source_der).Copy cell_target ROSSETTICL_source.Range(cellROSS_source_1er, cellROSS_source_der).Copy cell_target End Sub
Désolé pour le code surement grossier ....
Merci par avance pour votre aide
A voir également:
- Copie classeur ferme vers classeur tampon
- Copie cachée - Guide
- Super copie - Télécharger - Gestion de fichiers
- Imprimer un classeur excel sur mac - Guide
- Copie écran samsung - Guide
- Copie disque dur - Guide
8 réponses
Bonjour,
Combien de lignes maximum chez tes commerciaux (ordre de grandeur) ?
Version Excel ?
Le classeur "recup" est il dans le m^me répertoire que les classeurs "source" ?
Mettre un classeur source en pièce jointe( l'onglet BD suffira) , s'il te plait
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
Michel
Combien de lignes maximum chez tes commerciaux (ordre de grandeur) ?
Version Excel ?
Le classeur "recup" est il dans le m^me répertoire que les classeurs "source" ?
Mettre un classeur source en pièce jointe( l'onglet BD suffira) , s'il te plait
pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
Michel
Bonjour,
Tout d'abord merci pour ta réponse.
Pour répondre à ta question :
Il y aura 300 lignes maximum pour chaque commercial.
Le classeur récup est pour l'instant dans le meme répertoire mais dans l'ideal il ne l'est pas ... (si pas possible je le laisserai dans le meme répertoire ...)
Je te joins tout de suite le classeur source avec l'onglet bd
merci par avance pour ton aide.
Tout d'abord merci pour ta réponse.
Pour répondre à ta question :
Il y aura 300 lignes maximum pour chaque commercial.
Le classeur récup est pour l'instant dans le meme répertoire mais dans l'ideal il ne l'est pas ... (si pas possible je le laisserai dans le meme répertoire ...)
Je te joins tout de suite le classeur source avec l'onglet bd
merci par avance pour ton aide.
Adresse du lien : https://www.cjoint.com/?CBiiX2N4D2D
l'onglet est composé exactement de la meme maniere que celui des commerciaux
merci
l'onglet est composé exactement de la meme maniere que celui des commerciaux
merci
https://www.cjoint.com/?CBii3NoluPo et voici le lien du classeur ou les données doivent etre récupérée
c'est Excel version 2010 mais ce system doit fonctionner sous 2000 egalement
c'est Excel version 2010 mais ce system doit fonctionner sous 2000 egalement
Bonjour
En premier, il faut regarder si 2000 et 2010 sont compatibles et je n'ai ni l'un ni l'autre aussi je te mettrai à contribution pour que tu fasses les tests
sinon, nous serons obligés d'ouvrir chaque source et faire les copies : combien "pèsent" (en Ko ou Mo) environ un fichier "source"
je regarde ça mais je ne sais pas quand !
En premier, il faut regarder si 2000 et 2010 sont compatibles et je n'ai ni l'un ni l'autre aussi je te mettrai à contribution pour que tu fasses les tests
sinon, nous serons obligés d'ouvrir chaque source et faire les copies : combien "pèsent" (en Ko ou Mo) environ un fichier "source"
je regarde ça mais je ne sais pas quand !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re,
Désolé mais mon ordi avait envie de faire des farces ce matin
ci dessous, la solution simple mais brutale en ouvrant les fichiers commerciaux. compte tenu du poids, cela risque d'^tre long ! mais si ca te va...
Autrement, tu dis , alors, l'idéal serait que tu sauvegardes les fichiers commerciaux au format 97-2003
Le classeur onglet_bd est enregistré sous ce dernier format
le code:
Michel
Désolé mais mon ordi avait envie de faire des farces ce matin
ci dessous, la solution simple mais brutale en ouvrant les fichiers commerciaux. compte tenu du poids, cela risque d'^tre long ! mais si ca te va...
Autrement, tu dis , alors, l'idéal serait que tu sauvegardes les fichiers commerciaux au format 97-2003
Le classeur onglet_bd est enregistré sous ce dernier format
le code:
Option Explicit Sub tester_ouvert() Dim Chemin As String, Fich As String Dim Derlig As Integer, Plage() Dim Lig As Long Application.ScreenUpdating = False Chemin = "A:\Commerciaux\reporting mensuel des commerciaux\Nouveau reporting1\" 'Chemin = "d:\documents\ccm\" 'CHEZ MOI ! ChDir Chemin Fich = Dir("*.xls" & "*") While Fich <> "" If Fich <> "onglet_bd.xls" Then 'nom fichier à adapter Workbooks.Open Filename:=Fich With Sheets("feuil1") 'nom feuille à adapter Derlig = .Cells(.Rows.Count, "A").End(xlUp).Row Plage = .Range("A3:U" & Derlig).Value End With With Workbooks(Fich) If Not .Saved Then .Save End If .Close End With With ThisWorkbook.Sheets("feuil1") 'nom feuille à adapter Lig = .Cells(.Rows.Count, "A").End(xlUp).Row .Cells(Lig, "A").Resize(UBound(Plage), 21) = Plage End With End If Fich = Dir Wend End Sub
Michel
bonjour Michel,
Merci pour ton aide et désolée pour ma réponse un peu tardive... moi c'est ma connexion qui a décidé de faire des siennes depuis quelques jours
j'ai donc inséré ton code dans mon fichier en l'adaptant mais rien ne se passe quand j'essaye de l'executer
puis je abuser et te demander encore un peu de ton temps ?
voici le code adapté :
Merci pour ton aide et désolée pour ma réponse un peu tardive... moi c'est ma connexion qui a décidé de faire des siennes depuis quelques jours
j'ai donc inséré ton code dans mon fichier en l'adaptant mais rien ne se passe quand j'essaye de l'executer
puis je abuser et te demander encore un peu de ton temps ?
voici le code adapté :
Sub tester_ouvert() Dim Chemin As String, Fich As String Dim Derlig As Integer, Plage() Dim Lig As Long Application.ScreenUpdating = False Chemin = "A:\Commerciaux\reporting mensuel des commerciaux\Nouveau reporting mensuel des commerciaux\" 'Chemin = "d:\documents\ccm\" 'CHEZ MOI ! ChDir Chemin Fich = Dir("*.xls" & "*") While Fich <> "" If Fich <> "Nouveau REPORTING MENSUEL COMMERCIAUX MANAGER.xls" Then 'nom fichier à adapter Workbooks.Open Filename:=Fich With Sheets("BD") 'nom feuille à adapter Derlig = .Cells(.Rows.Count, "A").End(xlUp).Row Plage = .Range("A3:U" & Derlig).Value End With With Workbooks(Fich) If Not .Saved Then .Save End If .Close End With With ThisWorkbook.Sheets("BD") 'nom feuille à adapter Lig = .Cells(.Rows.Count, "A").End(xlUp).Row .Cells(Lig, "A").Resize(UBound(Plage), 21) = Plage End With End If Fich = Dir Wend End Sub