Créer nouveau fichier Excel

  • Initiateur de la discussion Initiateur de la discussion Toutou
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Toutou

XLDnaute Occasionnel
Bonjour à tous,


Je cherche à manipuler des fichiers Excelavec du code VBA.
La premiere feuilles du premier document contient des données et s'appelle "Rapport". Cette feuille contient egalement un bouton de commande.
Le but de ce bouton est le suivant:

1) Créer un nouveau fichier excel dans le meme dossier que celui dans lequel mon fichier courant est enregistrer.
2) Renommer ce nouveau fichier avec le contenu des cellules A2 et B5
3) Copier l'integralité de la feuille "Rapport" du premier fichier dans la premiere feuille du nouveau fichier.
4) Renommer la 1ere feuille du nouveau fichier (qui n'est plus vierge) "Rapport".

Ce que j'ai fait pour l'instant c'est créer un nouveau fichier et y copier le contenu de mon fichier de base:

Workbooks.Add
Windows("Mon fichier.xls").Activate
Sheets("Rapport").Activate
Cells.Select
Selection.Copy
Windows("Nouveau Fichier").Activate
ActiveSheet.Paste
ActiveWindow.DisplayGridlines = False


Qqun pourrait-il m'aider pour le reste SVP?
Il me semble qu'il y a sur le forum une sorte de tuto fait par Michel xld si je ne me troompe pas. Mais je n'arrice pas a le trouver. Pouriez vous me donnr le lien?

merci d'avance.

Bonne journée

Toutou
 
Re : Créer nouveau fichier Excel

Bonjour Toutou,

Voici un essai :
VB:
Public Sub Test()
Dim newWbk As Workbook, nomClasseur As String
    
    'créer un nouveau classeur (avec une seulle feuille)
    Set newWbk = Application.Workbooks.Add(xlWBATWorksheet)
    
    'copier la feuille "Rapport" de ce classeur dans le nouveau classeur
    ThisWorkbook.Sheets("Rapport").Cells.Copy
    newWbk.Sheets(1).Range("A1").Paste
    Application.CutCopyMode = False
    
    'renommer la feuille du nouveau classeur
    newWbk.Sheets(1).Name = "Rapport"
    
    'sauvegarder le nouveau classeur (à la racine de ce classeur)
    nomClasseur = ThisWorkbook.Sheets("Rapport").Range("A2").Text & ThisWorkbook.Sheets("Rapport").Range("B5").Text
    newWbk.SaveAs ThisWorkbook.Path & "\" & nomClasseur
    
    'fermer le nouveau classeur
    newWbk.Close True
    
End Sub
Sinon, Avais-tu pris connaissance de ma réponse sur ce fil ?

a+
 
Dernière édition:
Re : Créer nouveau fichier Excel

Re,

Bonjour mromain,

Oups, en effet j'ai oublié de repondre à ce fil.
Et bien ta proposition correspondait parfaitement à ce que je voulais faire.

Mais finalement je me suis apercu qu'il etait assez long et fastidieux de remplir mon fichier excel avec la liste completes des unicodes dont j'avais besoin. (Il me fallait en fait traduire des symboles chinois en Unicodes). Par miracle une application sur internet me permettait de traduire ce dont j'avais besoin.
Mais merci pour ton aide.

Concernant la creation du fichier, la macro bug sur:
newWbk.Sheets(1).Range("A1").Paste

la methode ne semble aps reconnue.

dois je ajouter du code?

merci encore

Toutou
 
Re : Créer nouveau fichier Excel

C'est bon j'ai résolu le problème en remplacant

newWbk.Sheets(1).Range("A1").Paste

par


newWbk.Sheets(1).Range("A1").Select
ActiveSheet.Paste

Cependant je ne comprends pa pourquoi la première ligne ne foncionne pas...

Merci beaucoup pour ton aide

Toutou
 
Re : Créer nouveau fichier Excel

Re bonjour,

Je n'avais pas tester le code...
Paste est un méthode de l'objet Worksheet (et non de l'objet Range).
Du coup, essaye avec ce code (testé cette fois 😉) :
VB:
Public Sub Test()
Dim newWbk As Workbook, nomClasseur As String
    
    'créer un nouveau classeur (avec une seulle feuille)
    Set newWbk = Application.Workbooks.Add(xlWBATWorksheet)
    
    'copier la feuille "Rapport" de ce classeur dans le nouveau classeur
    ThisWorkbook.Sheets("Rapport").Cells.Copy newWbk.Sheets(1).Range("A1")
    
    'renommer la feuille du nouveau classeur
    newWbk.Sheets(1).Name = "Rapport"
    
    'sauvegarder le nouveau classeur (à la racine de ce classeur)
    nomClasseur = ThisWorkbook.Sheets("Rapport").Range("A2").Text & ThisWorkbook.Sheets("Rapport").Range("B5").Text
    newWbk.SaveAs ThisWorkbook.Path & "\" & nomClasseur
    
    'fermer le nouveau classeur
    newWbk.Close True
    
End Sub
a+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
449
Réponses
5
Affichages
687
Réponses
3
Affichages
878
Réponses
3
Affichages
1 K
Compte Supprimé 979
C
Retour