thomas1972
Goto Top

Excel Daten aus dem WeB aktualisieren, Excel nach fertigstellung im Anschluss schließen

Hallo,

ich lade Daten in eine Excel Datei aus dem web hinein, DATEN - AUS DEM WEB.
das klappt beim öffnen soweit ganz gut, nur wie bekomme ich es hin, dass im Anschluss die Excel Datei automatisch wieder geschlossen wird?

Geht dieses überhaupt?
Habe leider hierzu keine Einstellung in Excel gefunden.

Content-Key: 258523

Url: https://administrator.de/contentid/258523

Printed on: April 19, 2024 at 12:04 o'clock

Mitglied: 114757
114757 Dec 25, 2014 updated at 18:05:12 (UTC)
Goto Top
Moin,
aktualisiere die QueryTable via VBA und schließe sie dann auch damit
Private Sub Workbook_Open()
    'Querytables auf dem  
ersten Sheet aktualisieren (SheetIndex 
ist anzupassen)
for each qt in Worksheets(1).Querytables
    qt.Refresh BackgroundQuery:=False
next
'Workbook speichern und schließen  
ThisWorkbook.Close True
'Excel beenden  
Application.Quit
End Sub
Gruß jodel32
Member: thomas1972
thomas1972 Dec 25, 2014 at 17:48:39 (UTC)
Goto Top
Dieses dann als openmakro?
Mitglied: 114757
114757 Dec 25, 2014 at 17:49:51 (UTC)
Goto Top
yip, oder in das Workbook_Open() Event kopieren...
Member: thomas1972
thomas1972 Dec 25, 2014 at 17:52:21 (UTC)
Goto Top
Bin von excel komplett raus, workbook_open event??
Sorry für die frage
Mitglied: 114757
114757 Dec 25, 2014 updated at 17:59:02 (UTC)
Goto Top
Zitat von @thomas1972:
workbook_open event??
Sorry für die frage
guckst du hier
http://support.microsoft.com/kb/265113/de
Member: thomas1972
thomas1972 Dec 25, 2014 at 18:05:02 (UTC)
Goto Top
Irgendwie löscht er mir das makro aus "diesearbeitsmappe" immer wieder heraus.
Beim speichern kam auch immer ein hinweis das das makro nicht gespeichert werden kann.

kann es mit excel2010 zusammen hängen?
Mitglied: 114757
114757 Dec 25, 2014 updated at 18:11:15 (UTC)
Goto Top
Du musst die Mappe als *.xlsm speichern !!!
Und Makros musst du natürlich im Sicherheitscenter von Excel auch aktivieren !! Optionen -> Trustcenter .....
http://office.microsoft.com/de-de/excel-help/andern-der-einstellungen-f ...

Mann das sind VBA-Grundlagen oder hast du noch nie was mit VBA gemacht ?
Member: thomas1972
thomas1972 Dec 25, 2014 updated at 18:29:13 (UTC)
Goto Top
Ich arbeite meist eher über Access und habe solche Einstellungen dort nicht vornehmen müssen,
aber vielleicht bekomme ich es auch anders hin.

ich öffne über Access eine Excel Datei, welche Webabfragen automatisch durchführt
Hintergrund, Access ist nicht in der Lage Websiten ohne Endung (html, htm) einzulesen, daher der Umweg über Excel

Private Sub Form_Load()
    Dim xlApp As Object, xlWB As Object

     Set xlApp = CreateObject("Excel.Application")  
     xlApp.Visible = True
     Set xlWB = xlApp.Workbooks.Open("f:\Test.xlsx", , True)  
     Set xlWB = xlApp.Workbooks(1).RefreshAll
     
End Sub

Hierbei wird aber das Excel Sheet immer nur Schreibgeschützt geöffnet
Wie bekomme ich es hin,

1. das das Excel Sheet nicht schreibgeschützt geöffnet wird
2. dass Access mitbekommt, dass das Excel Sheet fertig ist und dann das Sheet speichert und Excel beendet

Die Zeile Set xlWB = xlApp.Workbooks(1).RefreshAll
erzeugt einen Laufzeitfehler 424 Objekt erforderlich
Mitglied: 114757
114757 Dec 25, 2014 updated at 19:00:37 (UTC)
Goto Top
na das Hammer gerne, von Access hast du kein Wort erwähnt face-sad ... einmal kurz in die Doku schauen und du hättest es gewusst:
http://msdn.microsoft.com/de-de/library/office/ff194819(v=office.15).as ...

Set xlWB = xlApp.Workbooks.Open("f:\Test.xlsx")  
xlWB.RefreshAll
xlWB.Close True
xlApp.Quit

Die Query darf dabei nicht als Background-Query angelegt sein, dann wartet der Code bis alles aktualisiert ist ! Ansonsten kannst du die Querytable wie oben bereits geschrieben mit Angabe der BackgroundQuery-Parameters dazu zwingen Ihre Daten im Vordergrund zu aktualisieren.
Member: thomas1972
thomas1972 Dec 25, 2014 updated at 18:44:56 (UTC)
Goto Top
Der Fehler 424 bleibt dennoch weiter in der Zeile Set xlWB = xlApp.Workbooks(1).RefreshAll
erhalten, auch genannte URL hilft mir hier nicht weiter.

Hintergrundaktualisierung ist bereits abgeschaltet.


code>
Private Sub Form_Load()
Dim xlApp As Object, xlWB As Object

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlWB = xlApp.Workbooks.Open("f:\drucker_prod4.xlsx", , ReadOnly:=false)
Set xlWB = xlApp.Workbooks(1).RefreshAll
xlWB.Close True
xlApp.Quit
End Sub
Mitglied: 114757
114757 Dec 25, 2014 updated at 19:00:56 (UTC)
Goto Top
Falsch ....
Private Sub Form_Load()
     Dim xlApp As Object, xlWB As Object, qt as Object
     Set xlApp = CreateObject("Excel.Application")  
     xlApp.Visible = True
     xlApp.DisplayAlerts = False
     Set xlWB = xlApp.Workbooks.Open("f:\Test.xlsx")  
     for each qt in xlWB.Worksheets(1).Querytables
        qt.Refresh BackgroundQuery:=False
     next
     xlWB.Close True
     xlApp.DisplayAlerts = True     
     xlApp.Quit
End Sub