Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Copier les données d'une feuille dans dans une nouveau classeur

adildetaza

XLDnaute Nouveau
Bonjour
Un grand merci à tous les membres de ce Forum. J'ai besoin de votre aide. j'utilise le code en-dessous pour enregistrer une données d'une feuille excel dans une autre nouveau classeur. J'au un petit problème, le nouveau fichier s'enregistre dans mes documents. Alors je veux l'enregistrer dans le même chemin du fichier source.

Sub Corde2_Cliquer()
'1 - on copie la feuille dans un nouveau classeur afin d'avoir le même format
NomFichCopié = ActiveWorkbook.Name 'Le fichier contenant tes macros
Workbooks.Add 'création d'un nouveau fichier
NomFichNouveau = ActiveWorkbook.Name 'On relève son nom provisoire
'On colle la feuille dans le nouveau classeur
Workbooks(NomFichCopié).Sheets("Feuil1").Copy _
Before:=Workbooks(NomFichNouveau).Sheets(1)

'2 - On fait une copie des données de la feuille déjà copiée

Application.CutCopyMode = False
Workbooks(NomFichCopié).Sheets("Feuil1").Cells.Copy 'Copie des données
Range("A1").Select 'On est toujours dans le nouveau classeur
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False 'On ne colle que les valeurs
Workbooks(NomFichNouveau).SaveAs Filename:="NomQueTuVeux.xls"
Workbooks("NomQueTuVeux.xls").Close


End Sub
 

Pièces jointes

  • test-exportation.xlsm
    20.1 KB · Affichages: 18

Staple1600

XLDnaute Barbatruc
Bonjour le fil, adildetaza

=>adildetaza
Ton code VBA légérement modifié
(test OK chez moi)
VB:
Sub Corde2_Cliquer()
'1 - on copie la feuille dans un nouveau classeur afin d'avoir le même format
Chemin = ActiveWorkbook.Path & "\"
NomFichCopié = ActiveWorkbook.Name 'Le fichier contenant tes macros
Workbooks.Add (xlWBATWorksheet)
NomFichNouveau = ActiveWorkbook.Name 'On relève son nom provisoire
'On colle la feuille dans le nouveau classeur
Workbooks(NomFichCopié).Sheets("Feuil1").Copy _
Before:=Workbooks(NomFichNouveau).Sheets(1)
'2 - On fait une copie en valeurs seules
'des données de la feuille déjà copiée
ActiveSheet.UsedRange = ActiveSheet.UsedRange.Value
Application.DisplayAlerts = False
Workbooks(NomFichNouveau).Sheets("Feuil1").Delete
Workbooks(NomFichNouveau).SaveAs Filename:=Chemin & "NomQueTuVeux.xls"
Workbooks("NomQueTuVeux.xls").Close
End Sub
 

fanfan38

XLDnaute Barbatruc
Bonjour
Cette macro copie la feuille active dans un nouveau fichier quelle enregistre dans le même chemin
VB:
Sub copiefeuille()
 Dim chemin As String
 chemin = ActiveWorkbook.Path
  Workbooks("test-exportation.xlsm").Sheets("Feuil1").Copy
  ActiveWorkbook.SaveAs Filename:=chemin & "\NomQueTuVeux.xls"
  Workbooks("NomQueTuVeux.xls").Close
End Sub
A+ François
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @adildetaza et bienvenue sur XLD

Un autre essai:
VB:
Sub test()
Dim nouvo As Workbook, chemin As String
   Application.ScreenUpdating = False
   Set nouvo = Workbooks.Add
   ThisWorkbook.Sheets("feuil1").Copy Before:=nouvo.Sheets(1)
   nouvo.Sheets(1).UsedRange = nouvo.Sheets(1).UsedRange.Value
   chemin = ThisWorkbook.Path
   If Right(chemin, 1) <> "\" Then chemin = chemin & "\"
   nouvo.SaveAs chemin & "NomQueTuVeux.xls"
   nouvo.Close
   MsgBox "Terminé !"
End Sub
 

Pièces jointes

  • adildetaza- copie autre classeur- v1.xls
    52 KB · Affichages: 11

adildetaza

XLDnaute Nouveau
Merciiiii Staple1600. ça fonctionne très très bien merccciiiii
 

adildetaza

XLDnaute Nouveau

Merciii. J'ai testé ton code. une solution brève et efficace. Merciiiiiiiii
 

adildetaza

XLDnaute Nouveau
Merciiii aussi ça fonctionne très bien merciiiii
 

Staple1600

XLDnaute Barbatruc
Re

=>adildetaza
=>Juste une précision <=
[à ne pas assimiler à une critique]
Seul mon code et celui de mapomme transforme les données de la copie en valeurs seules.
(comme dans ton code initial)
Le code de fanfan38 copie la feuille telle quelle
(donc avec les formules )
 

Discussions similaires

Réponses
7
Affichages
559
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…