Copie classeur ferme vers classeur tampon
Résolu
anais890313
Messages postés
11
Statut
Membre
-
anais890313 Messages postés 11 Statut Membre -
anais890313 Messages postés 11 Statut Membre -
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
- Imprimer un classeur excel sur mac - Guide
- Super copie - Télécharger - Gestion de fichiers
- 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