Créer nouveau fichier et y Coller une sélection

Bonjour à vous tous,

Un petit problème que je vous soumets:

J'ai un fichier dans lequel je fais une sélection, que je copie.

Je voudrais ensuite créer un nouveau fichier, dont je définis le nom à la demande (TEST01, par exemple), et y coller simplement ma sélection.

1) la coller en A1

2) la coller en B2, par exemple.

Tout fonctionne correctement (sélection, création) jusqu'à la commande de recopie dans le nouveau fichier correctement créé... !?

CA bug au moment de la recopie ...

Si vous avez une idée du comment et du pourquoi

Merci

CODE: (fichier annexé)

Sub CopyNew()

Chemin = ActiveWorkbook.Path

Dim NewClasseur As Workbook

' Sélection de la zone à recopier dans le nouveau fichier à créer:

DerLigne = Range("A65536").End(xlUp).Row

Range("A5" & ":AP" & DerLigne).Select

Selection.Copy

' Saisie du nom du nouveau fichier cible à créer:

Nom = InputBox("Entrer le nom du nouveau fichier: ", "Création du fichier cible")

' Création du nouveau fichier

Set NewClasseur = Application.Workbooks.Add

NewClasseur.SaveAs Filename:=Chemin & "\" & Nom

'Copie de la sélection dans le nouveau fichier

Cells.Select

ActiveSheet.Paste '------> c'est ici que ca BUG !!!

End Sub

30pastenewfile.zip (21.03 Ko)

Voici une méthode que j'ai testée et qui fonctionne:

Après avoir créé le nouveau fichier cible, il faut revenir au fichier source pour ressaisir la sélection à aller recopier !

Question corolaire:

Je constate que le fichier créé a l'extension .xlsx par défaut !

Peut-on spécifier une autre extension finale du fichier créé ?

CODE

Sub CopyNew()

Chemin = ActiveWorkbook.Path

Dim NewClasseur As Workbook

'Saisie du nom du nouveau fichier cible à créer:

Nom = InputBox("Entrer le nom du nouveau fichier: ", "Création du fichier cible")

'Création du nouveau fichier

Set NewClasseur = Application.Workbooks.Add

NewClasseur.SaveAs Filename:=Chemin & "\" & Nom

'Revenir au fichier source !

Windows("PasteNewFile2.xls").Activate

' Sélection de la zone à recopier ensuite dans le nouveau fichier à créer:

DerLigne = Range("A65536").End(xlUp).Row

Range("A5" & ":AP" & DerLigne).Select

Selection.Copy

'Retourner au fichier cible précédemment créé:

Windows(Nom & ".xlsx").Activate

'Copie de la sélection dans le nouveau fichier

Cells.Select

Range("B5").Select

ActiveSheet.Paste

Range("A1").Select

'Revenir fermer le fichier source

Windows("PasteNewFile2.xls").Activate

ActiveWorkbook.Close

End Sub

49pastenewfile2.zip (21.52 Ko)

Bonjour,

Une alternative à ta méthode.

Cdlt.

Option Explicit

Public Sub DEMO()
Dim wb As Workbook, sFilename As String, lastRow As Long

    sFilename = InputBox("Entrer le nom du nouveau fichier: ", "Création du fichier cible")

    If sFilename = vbNullString Then Exit Sub

    Set wb = ThisWorkbook
    sFilename = wb.Path & Application.PathSeparator & sFilename

    Application.ScreenUpdating = False

    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Range("A5:AP" & lastRow).Copy

    Workbooks.Add (xlWBATWorksheet)
    Worksheets(1).Range("B5").PasteSpecial Paste:=xlPasteAll
    Range("A1").Select
    Application.CutCopyMode = False

    ActiveWorkbook.SaveAs Filename:=sFilename, FileFormat:=xlOpenXMLWorkbook

    With wb
        .Activate
        .Close SaveChanges:=False
    End With

    Set wb = Nothing

End Sub

Bonjour Jean-Eric,

Merci pour ce code plus court et un rien plus rapide.

Je préfère ainsi ton alternative plus propre

@++

Rechercher des sujets similaires à "creer nouveau fichier coller selection"