Copier onglet dans un nouveau classeur

Sly le globe trotter

XLDnaute Occasionnel
Bonjour à tous,

Je cherche actuellement à copier dans un nouveau classeur, un onglet contenant des formules et des liens. J'utilise pour cela les quelques lignes suivantes
Code:
Worksheets("DataSérie").Copy
    
Set objWorkbookCible = ActiveWorkbook
    
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Debutcheminsave & "\" & DossierJoueur & "\" & Nomfichier
Workbooks(Nomfichier & ".xlsx").Close
Application.DisplayAlerts = True
        
MsgBox "Enregistrement effectué", vbOKOnly, "Save"

Existe-t-il une solution pour copier les informations du fichier source (données, format, ...) en remplaçant les liens éventuels par les valeurs ?
Dans le cas contraire, je suppose que la solution consisterait à remplacer, dans le fichier cible, les données par les valeurs. Qu'en dites-vous ?

Merci pour votre aide,
Sylvain
 

gilbert_RGI

XLDnaute Barbatruc
Re : Copier onglet dans un nouveau classeur

Bonjour,

Comme ceci peut-être ?

VB:
Option Explicit
Sub Enregistre()
    Dim objWorkbookModele As Workbook
    Dim objWorkbookCible As Workbook
    Dim chemin As String, Nomfichier As String
    chemin = ActiveWorkbook.Path & "\"
    Nomfichier = "Marcel"
    Set objWorkbookModele = ActiveWorkbook
    Application.DisplayAlerts = False
    objWorkbookModele.ActiveSheet.Cells.Select
    Selection.Copy
    Workbooks.Add
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
                           xlNone, SkipBlanks:=False, Transpose:=False
    ActiveWorkbook.SaveAs chemin & Nomfichier & ".xlsx"
    Set objWorkbookCible = ActiveWorkbook
    objWorkbookCible.Close
    Application.DisplayAlerts = True
    MsgBox "Enregistrement effectué", vbOKOnly, "Sauve"

End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Copier onglet dans un nouveau classeur

Bonsoir à tous


Une autre façon de faire pour les valeurs seules uniquement
(donc sans préservation des formats et/ou fioritures)
VB:
Sub CopyFeuilleValeursSeules()
Dim sPth$, nFic$, fCopy As Worksheet
sPth = "C:\temp\": nFic = "fValSeules.xlsx" ' adapter le chemin et le nom du fichier
Sheets("Feuil1").Copy ' adapter le nom de la feuille
Set fCopy = ActiveSheet
    With fCopy.UsedRange
        .Value = .Value
    End With
    With Workbooks(fCopy.Parent.Name)
        .SaveAs sPth & nFic, 51
        .Close True
    End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG