Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1872to1876
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem beim einfachen schließen via VBA

Problem beim einfachen schließen via VBA
09.03.2022 09:36:46
marv
Hallo zusammen,
kämpfe jetzt seit zwei Tagen gegen ein Problem und komme allein nicht weiter. Brauche Hilfe.
Im Folgenden wird eine Datei " "bvtaeglichms.xlsx" erzeugt, diese soll kurz geöffnet werden um Daten rauszukopieren.
Anschließend soll die Datei geschlossen und gelöscht werden. Wobei nicht mal das schließen klappt.
Die Datei geht am Ende immer nochmal auf... Ich dreh noch durch, weiß nicht warum.
Wenn ich erst lösche meckert er das die Datei nicht mehr existieren würde und öffnet mir einfach eine neue Blanko Excel.
Das möchte ich alles nicht...
Einfach zu machen und löschen.

Option Explicit
Public SapGuiAuto, WScript, msgcol
Public objGui  As GuiApplication
Public objConn As GuiConnection
Public session As GuiSession
Public objSheet As Worksheet
Sub DatenHolen()
Set SapGuiAuto = GetObject("SAPGUI")
Set objGui = SapGuiAuto.GetScriptingEngine
Set objConn = objGui.Children(0)
Set session = objConn.Children(0)
Dim selectedBetrieb As String
Dim selectedDatum As String
Dim selectedPfad As String
selectedBetrieb = ThisWorkbook.Worksheets("BV").Range("N23").Value
selectedDatum = ThisWorkbook.Worksheets("BV").Range("N24").Value
selectedPfad = ThisWorkbook.Path
session.FindById("wnd[0]").Maximize
session.FindById("wnd[0]/tbar[0]/okcd").Text = "/nmb51"
session.FindById("wnd[0]").SendVKey 0
session.FindById("wnd[0]/tbar[1]/btn[17]").Press
session.FindById("wnd[1]/usr/txtV-LOW").Text = "BVTAEGLICHMS"
session.FindById("wnd[1]/usr/txtENAME-LOW").Text = ""
session.FindById("wnd[1]/usr/txtV-LOW").CaretPosition = 12
session.FindById("wnd[1]/tbar[0]/btn[8]").Press
session.FindById("wnd[0]/usr/ctxtWERKS-LOW").Text = selectedBetrieb
session.FindById("wnd[0]/usr/ctxtBUDAT-LOW").Text = selectedDatum
session.FindById("wnd[0]/usr/ctxtBUDAT-LOW").SetFocus
session.FindById("wnd[0]/usr/ctxtBUDAT-LOW").CaretPosition = 6
session.FindById("wnd[0]").SendVKey 0
session.FindById("wnd[0]/tbar[1]/btn[8]").Press
session.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell").SetCurrentCell 9, "MENGE"
session.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell").SelectedRows = "9"
session.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell").ContextMenu
session.FindById("wnd[0]/usr/cntlGRID1/shellcont/shell").SelectContextMenuItem "&XXL"
session.FindById("wnd[1]/tbar[0]/btn[0]").Press
session.FindById("wnd[1]/usr/ctxtDY_PATH").Text = ThisWorkbook.Path
session.FindById("wnd[1]/usr/ctxtDY_FILENAME").Text = "bvtaeglichms.xlsx"
session.FindById("wnd[1]/usr/ctxtDY_FILENAME").CaretPosition = 17
session.FindById("wnd[1]/tbar[0]/btn[11]").Press
ThisWorkbook.Worksheets("BV").Range("A6:I9999").ClearContents
Dim ext_wb As Workbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set ext_wb = Workbooks.Open(ThisWorkbook.Path & "\bvtaeglichms.xlsx")
ext_wb.Sheets("Sheet1").Range("A1:I9999").Copy
ThisWorkbook.Sheets("BV").Range("A5").PasteSpecial
Application.DisplayAlerts = False
Application.ScreenUpdating = False
ext_wb.Close SaveChanges:=True
'Kill ThisWorkbook.Path & "\bvtaeglichms.xlsx"
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem beim einfachen schließen via VBA
09.03.2022 10:38:30
UweD
Hallo
den oberen Teil kann ich nicht testen.
Der Rest ab "ThisWorkbook.Worksheets("BV").Range("A6:I9999").ClearContents"
klappt.
Auch das Löschen der Datei
Das "SaveChanges:=True" kannst du dir sparen, da die Datei ja danach sowieso gelöscht wird.
LG UweD
AW: Problem beim einfachen schließen via VBA
09.03.2022 10:51:54
marv
Wenn ich SaveChanges:=True auf False setze habe ich das selbe Problem.
Gibt es die Möglichkeit eine Zeitschleife zu bauen, sodass der close und kill befehl 10sek später ausgeführt wird als der copy&paste teil?
AW: Problem beim einfachen schließen via VBA
09.03.2022 10:55:50
UweD
Hi

Application.Wait (Now + TimeValue("0:00:10"))

Anzeige
AW: Problem beim einfachen schließen via VBA
09.03.2022 11:02:49
marv
Danke für den Tipp, leider bringt auch die Zeitschleife nichts....excel geht am ende trotzdem nochmal auf...
Workbooks.Close dieser befehl geht bei mir auch nicht? sollte aber gehen?
AW: Problem beim einfachen schließen via VBA
09.03.2022 17:34:54
onur
Wenn du etwas in SAP als Excel-Sheet exportierst, wird das Sheet erstellt und GEÖFFNET aber nicht gespeichert.
Wozu also nochmal versuchen, es zu öffnen ? Zumal es eigentlich auch nicht von SAP gespeichert wird, bis DU das machst.
AW: Problem beim einfachen schließen via VBA
09.03.2022 10:38:47
Pierre
Hallo Marv,

Ich dreh noch durch, weiß nicht warum.
Wahrscheinlich, weil es nicht klappt? ;-)
Spaß beiseite...
Du willst die Datei direkt wieder löschen? Warum dann SaveChanges = True?
Versuch mal mit False.
Weiß aber nicht, ob das schon reicht.
Gruß Pierre
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige