Création nouveau dossier + transfert .....

KyFranRD

XLDnaute Occasionnel
Bonjour à tous

A la fin des services de matinée et de soirée, Les personnes utilisant mon fichier devront valider les données.

Pour cela je cherche à créer un nouveau classeur en vba, lui donner un nom, réaliser un transfert de la feuille 1.

Mais à chaque fois cela me met >>> Subscript out of range, en essayant le transfert de "Saisie CMtest" vers le nouveau fichier Comment dois-je faire pour éviter cela?.



'On ajoute un classeur

Set xlBook = xlApp.Workbooks.Add

'On donne un nom au classeur
xlBook.SaveAs "C:\Users\KyFranRD\Desktop\Mouvement\Renvoi" & ".xls"

Workbooks("C:\Users\KyFranRD\Desktop\Mouvement\Saisie CMtest.xls").Activate

Workbooks("Saisie CMtest").Sheets("Saisie CM").Copy After:=Workbooks("Renvoi.xls").Sheets(1)

'On donne un nom au classeur
xlBook.SaveAs "C:\Users\KyFranRD\Desktop\Mouvement\Matinée\Matinée" & Format(Date, "ddmmyyyy") & ".xls"

Dois je absolument créer un fichier temporaire "renvoi" et si oui comment le supprimer en final.

Merci à l'avance
 
Dernière édition:

jp14

XLDnaute Barbatruc
Re : Création nouveau dossier + transfert .....

Bonjour


Ci dessous une autre approche

Si l'objectif est de créer un fichier identique à la feuille 1 le plus simple est d'utiliser la fonction "déplacer copier" dans un nouveau classeur.
Ci dessous un exemple de macro qui transfère deux feuilles dans un nouveau classeur dont le nom se trouve dans la variable NomFichier.
Code:
    Sheets(Array("Feuil1", "Feuil2")).Copy
    ActiveWorkbook.SaveAs Filename:= _
        NomFichier, _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWorkbook.Close

A tester

JP
 

KyFranRD

XLDnaute Occasionnel
Re : Création nouveau dossier + transfert .....

Bonjour


Ci dessous une autre approche

Si l'objectif est de créer un fichier identique à la feuille 1 le plus simple est d'utiliser la fonction "déplacer copier" dans un nouveau classeur.
Ci dessous un exemple de macro qui transfère deux feuilles dans un nouveau classeur dont le nom se trouve dans la variable NomFichier.
Code:
    Sheets(Array("Feuil1", "Feuil2")).Copy
    ActiveWorkbook.SaveAs Filename:= _
        NomFichier, _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWorkbook.Close

A tester

JP


J'ai testé. ça fonctionne. Par contre comment faire pour ne copier que le contenu des cellules et non pas les formules, code vba pouvant s'y trouver? Uniquement la feuille brute avec seulement les valeurs.


merci à l'avance
 

jp14

XLDnaute Barbatruc
Re : Création nouveau dossier + transfert .....

Bonsoir

Ci dessous un code à tester
Code:
   Cells.Copy 'copie de la feuille 
    Workbooks.Add ' création d'un classeur et on colle dans le classeur le contenu de la feuille uniquement les valeurs
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
' sauvegarde du fichier avec son nom
    ActiveWorkbook.SaveAs Filename:="toto2.xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
    ActiveWorkbook.Close ' fermeture du fichier

L'enregistreur de macro est très utile dans ce type de problème.


JP
 

Discussions similaires

Statistiques des forums

Discussions
312 687
Messages
2 090 954
Membres
104 705
dernier inscrit
Mike72