[excel vba]copier un classeur

LABUCHE

XLDnaute Junior
Bonjour a tous
j'aurai besoin de votre aide afin de mettre en place une macro
pour copier un classeur tout entier dans un autre fichier mais sans les formules...:confused:
en fait a chaque fois que j'alimente un fichier( dans lequel il y plusieurs macros et des formules ) j'aimerai lorsque je le ferme je cree un nouveau fichier identique mais au format texte avec des feuilles protégés afin qu'en ne puisse pas modifier mes données .....
 

LABUCHE

XLDnaute Junior
Re : [excel vba]copier un classeur

voila un debut de code avec l'enregistreur de macro
Code:
    Cells.Select
    Selection.Copy
    Workbooks.Add
    Cells.Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
    Windows("agenda.xls").Activate
End Sub
j'aimerai pouvoir appliquer ce code pour l ensemble du classeur c'est a dire pour toute les feuilles ....
 

LABUCHE

XLDnaute Junior
Re : [excel vba]copier un classeur

bonjour jp14
on a eu la meme idee :eek:
par contre faire une macro feuille par feuille c 'est assez lourd ....

j'avais penser a modifier un code que j'utilise pour sauvegarder mes fichiers
Code:
Sub mdlsvg()

ThisWorkbook.SaveCopyAs "d:\svg.xls"
  End Sub
la il me copie toutes les feuilles meme les formules .....
 

jp14

XLDnaute Barbatruc
Re : [excel vba]copier un classeur

Bonjour LABUCHE

Ci dessous une macro qui recopie toutes les feuilles d'un classeur dans un nouveau classeur.
Il faut modifier le code pour la copie des valeurs.

Code:
Sub Macro2()
'
Dim Sh As Worksheet
Dim classeur2 As String
Dim classeur1 As String
Dim nom1 As String
nom1 = "tintin"
    classeur1 = ActiveWorkbook.Name
    
    Workbooks.Add
   classeur2 = ActiveWorkbook.Name
     For Each Sh In Workbooks(classeur1).Worksheets
        'Workbook(classeur1).Sheets(Sh.Name).Select
        Workbooks(classeur1).Sheets(Sh.Name).Copy Before:=Workbooks(classeur2).Sheets(1)
    Next Sh

   Workbooks(classeur2).Activate
    ActiveWorkbook.SaveAs Filename:= _
        nom1, FileFormat _
        :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
        False, CreateBackup:=False
    ActiveWorkbook.Close
End Sub

JP
 

jp14

XLDnaute Barbatruc
Re : [excel vba]copier un classeur

Bonsoir (re)
IL faut modifier la macro avec le code pour copier uniquement les valeurs
Code:
For Each Sh In Workbooks(classeur1).Worksheets
        Workbooks(classeur1).Sheets(Sh.Name).Cells.Copy
        Workbooks(classeur2).Activate
        Sheets.Add
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
        Workbooks(classeur1).Activate
        
    Next Sh

JP
 

glister972

XLDnaute Nouveau
Re : [excel vba]copier un classeur

Bonjour !!!

la réponse date d'il y a plus d'un an mais c'est exactement ce que je cherche.

Je suis débutant, vraiment débutant en VBA et je ne sais pas à quoi correspond ce qui est marqué dans la formule, quelqu'un pourrait-il m'éclairer s'il vous plait ?
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 047
Membres
104 011
dernier inscrit
dfr