XL 2013 macro copie dans un autre classeur

ciocciu

XLDnaute Nouveau
bonjour
je cherche à faire une macro qui ouvre un autre classeur pour y copier un range du classeur source
j'ai mis cela dans thisWorkBook à l'évènement before close afin qu'au moment de la fermeture il enregistre dans le fichier destination le range choisi
voici ce que j'ai fait

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.EnableEvents = False

'chemin ou se trouve le fichier B
chemin = "C:\"
'nom du fichier B
fichier = "nom.xlsm"
If Dir(chemin & fichier) = "" Then Exit Sub
'définir le classeur source
Set classeurSource = ActiveWorkbook

'définir le classeur destination
Set classeurdestination = Application.Workbooks.Open(chemin & fichier, , True)

'copier les données de la "corr" du classeur source vers la "corr" du classeur destination
classeurSource.Sheets("corr").Range("A1:F9999").Copy Destination:=classeurdestination.Sheets("corr").Range("A1")

'fermer le classeur destination sans message
Application.DisplayAlerts = False
classeurdestination.Save
classeurdestination.Close
Application.DisplayAlerts = True

End Sub


si j'ouvre nom.xlsm le range n'a pas été copié....
et déroulant pas à pas

il se passe un truc étrange
le classeur destination nom.xslm s'ouvre bien , mais il est bizarre j'ai pas de barre Fichier, insertion etcetc , juste le tableau
la page corr est bien modifée (ajout du nouveau range ) je la vois elle est ok
mais il ne se sauve pas et du coup
quand je l'ouvre la page corr n'est pas modifiée
merci encore pour votre aide ô combien précieuse
 

ciocciu

XLDnaute Nouveau
ok je me réponds à moi même puisque j'ai trouvé la solution
en fait le classeur était ouvert en mode read only
Set classeurdestination = Application.Workbooks.Open(chemin & fichier, , True)

donc à ouvrir en mode modif
Set classeurdestination = Application.Workbooks.Open(chemin & fichier, , false)
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 796
Membres
101 817
dernier inscrit
carvajal