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"
Hallo
Ich erstelle ein Makro, um eine Excel-Datei zu erstellen und ihr Informationen hinzuzufügen. Ich habe ein Problem mit der Erstellung der Excel-Datei.
Makro funktioniert 1 Mal von 2 und 1 Mal von 2 strikt. Bei der Erstellung meiner Datei denke ich, dass es ein Problem gibt, aber ich habe im Internet nachgeschaut und nichts gefunden.
Kann mir jemand helfen?
Hier ist mein Code-Schnipsel für die Erstellung der Excel-Datei:
Möglicherweise hatte ich kürzlich das gleiche Problem, schauen Sie sich die Prozesse an, nachdem Sie Ihr Makro verwendet haben, wenn Excel noch verwendet wird, bedeutet dies, dass Sie den Prozess nicht vollständig schließen und beim zweiten Start schief geht
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
Vielen Dank für Ihre Antwort. Das ist richtig, aber das Problem ist, dass ich Excel am Ende meines Makros nicht schließen möchte. Ich möchte, dass er offen bleibt.
Wenn Sie das Makro neu starten und es sich immer noch in derselben Datei befindet, kann es die Seiten 'SETS', 'MECHANICAL PARTS' und 'COMMERCIAL ITEMS' nicht zweimal erstellen
Setzen Sie eine Bedingung, wenn die Seite nicht existiert, wird sie erstellt.
Ihr Makro füllt Ihre Excel-Datei jedes Mal, wenn Sie auf die geöffnete Baugruppe klicken, erstellen / öffnen Sie jedes Mal eine neue Excel-Datei, wenn Sie alle Informationen in einer einzigen Datei speichern?
Ich weiß, dass es sich um ein unveröffentlichtes Problem mit Excel-Ressourcen handelt. Ich habe versucht, meine Excel-Datei über Excel zu schließen, wenn mein Makro fertig ist, und mein Makro neu zu starten, aber ich habe immer noch das gleiche Problem.
Gibt es einen Test, mit dem Sie feststellen können, ob die Ressource freigegeben ist und ob nicht, um sie freizugeben?
Sie müssen in den Prozessen nachsehen, sobald Sie das Excel geschlossen haben, gehen Sie zu Ihrem Task-Manager (Strg + SHIFT + Esc) -> Prozess und überprüfen Sie, ob es keine EXCEL.EXE
Vielleicht ist es meine Ergänzung, die schlecht ist?
Set xlMeca Sheet = xlApplication.Sheets.Add(After:=Worksheets(Worksheets.Count)) Set xlSheetComm = xlApplication.Sheets.Add(After:=Worksheets(Worksheets.Count))
Die einzige Lösung, die ich bisher gefunden habe, besteht darin, den Excel-Prozess am Ende der Verarbeitung zu beenden.
Sonst ist er wie verloren zwischen den beiden Excel-Prozessen vorhanden und weiß nicht, in welchem er laufen soll und nimmt gleichgültig das Gute oder das Schlechte.
Die einzige Erklärung fand ich bei meinen wenigen VB-Bekannten.
Angesichts der Tatsache, dass das Problem darin besteht, dass es sich um die Formatierung handelt und dass mein Excel korrekt ausgefüllt ist, werden wir sagen, dass dieses Problem "akzeptabel" ist...