Problème avec création de nouvelle classeur par vba puis remplissage du classeur

Daroumx

XLDnaute Nouveau
Bonjour le forum,

Voila mon problème j'essaie de créer un nouveau classeur par vba via une macro dans un autre classeur.
Le nouveau classeur est crée avec comme nom : nomduclasseur + date d'aujourd'hui et une seule feuille nommée aussi.Mais quand j'essaie d'activer le nouveau classeur et remplir une de ces cellules j'ai un message d'erreur "Erreur d'exécution 9". Je ne suis pas trop familier avec les excel applications et tout ça j'ai juste pris le code d'un autre forum et essayé d'adapter.

Voici mon code:
Code:
Sub test()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Date_creation = now()
  Set xlApp = CreateObject("Excel.Application")
    xlApp.SheetsInNewWorkbook = 1
    Set xlBook = xlApp.Workbooks.Add
    xlBook.SaveAs ("NomFichier " + CStr(Format(Date_creation, "dd.mm.yy")) + " .xlsx")
    xlApp.Visible = True
    Set xlSheet = xlBook.Worksheets(1)
    xlSheet.Name = "NomDeMonuniquefeuille"
    NomMaFeuille = xlBook.Name
Windows(NomMaFeuille).Activate
Range("A1").Value = "test"
End Sub

ça bloque au niveau de windows(NomMafeuille).activate

Voila j'espère que j'ai été clair sinon je reste à votre disposition pour plus d'informations.En vous remerciant d'avance pour votre aide précieuse. ;)
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Problème avec création de nouvelle classeur par vba puis remplissage du classeur

Bonjour Daroumx
Pas certain d'avoir compris.
Ton problème viens, je pense, du fait que pour créer un classeur, tu creés une application Excel.
Par VBA ET depuis Excel, ce code suffit. Tu peux manipuler le nouveau classeur en utilisant NwWkb:
VB:
Sub test_2()
Dim Date_creation As String, NwWkb As Workbook
Date_creation = Format(Date, "dd-mm-yy")
Set NwWkb = Workbooks.Add(1)
NwWkb.Sheets(1).Name = "NomDeMonuniquefeuille"
NwWkb.SaveAs ThisWorkbook.Path & "\" & Date_creation & ".xlsx"
NwWkb.Sheets(1).Range("$A$1").Value = "test"
End Sub

Dans cet exemple, le nouveau classeur sera enregisté dans le même dossier que le classeur qui porte la macro.

Cordialement
 

Discussions similaires