Set xlApplication = CreateObject("Excel.Application")
xlApplication.Visible = True
DoEvents
Set xlWorkBook = xlApplication.Workbooks
xlWorkBook.Add
Set xlFeuilEnse = xlApplication.ActiveSheet
DoEvents
'Création et renommage des feuilles
Set xlFeuilMeca = xlApplication.Sheets.Add(After:=Worksheets(Worksheets.Count))
Set xlFeuilComm = xlApplication.Sheets.Add(After:=Worksheets(Worksheets.Count))
xlFeuilEnse.Name = "ENSEMBLES"
xlFeuilMeca.Name = "PIECES MECANIQUES"
xlFeuilComm.Name = "ELEMENTS DU COMMERCE"
Bonjour,
Je suis entrain de réaliser une macro afin de créer un fichier excel et de lui ajouter des informations. J'ai un souci sur la création du fichier excel.
Macro marche 1 fois sur 2 et 1 fois sur 2 strictement. C'est dans ma création de mon fichier que je pense il y a un souci mais j'ai regardé sur le net et j'ai rien trouvé.
Quelqu'un peut-il m'aider ?
Voici mon bout de code pour la création du fichier excel :
J'ai peu être eu le même problème récemment, regarde les processus, après l'utilisation de ta macro si excel es toujours en cours d'utilisation c'est que tu ne ferme pas complètement le process et il se met en erreur au deuxième lancement
Sub FermetureExcel()
Set xlFeuilMeca = Nothing
Set xlFeuilComm = Nothing
'Fermeture du classeur et de Excel
oXL.DisplayAlerts = False
oXL.Workbooks.Close
oXL.Quit
oXL.DisplayAlerts = True
'Désallocation de la mémoire
Set oSH = Nothing
Set oWB = Nothing
Set oXL = Nothing
End Sub
Si tu relance la macro et que c'est toujours sur le même fichier il ne peu pas crée deux fois la page 'ENSEMBLES', 'PIECES MECANIQUES' et 'ELEMENTS DU COMMERCE'
Met une condition, si les page n'existe pas elle sont crée.
Ta macro rempli ton fichier excel a chaque fois que tu clic suivant l'assemblage qui es ouvert, tu crée/ouvre un nouveau fichier excel a chaque fois ou tu stock toutes les informations sur un seul et même fichier ?
Je sais que c'est un problème de ressource excel non libérée. J'ai essayé de fermer mon fichier excel via excel lorsque ma macro est terminée et de relancer ma macro mais j'ai toujours le même problème.
Existe-t-il un test qui permet de savoir si la ressource est libérée et si elle n'est pas libérée de la libérer ?
Il faut regarder dans les processus, une fois que tu a fermer les excel va dans ton gestionnaire de taches (Ctrl + MAj + Echap) -> Processus et vérifie qu'il ne reste pas de EXCEL.EXE
Set xlFeuilMeca = xlApplication.Sheets.Add(After:=Worksheets(Worksheets.Count)) Set xlFeuilComm = xlApplication.Sheets.Add(After:=Worksheets(Worksheets.Count))
La seule solution que j'ai trouvé jusqu'alors est de tuer le processus Excel à la fin du traitement.
Sinon il est comme perdu entre les deux process Excel présents et ne sais pas dans lequel tourner et prend de manière indifférente le bon ou le mauvais.
Seule explication que j'ai trouvé avec mes quelques connaissances VB.