Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1364to1368
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

Excelsheet aktualisieren bringt Laufzeitf.1004

Excelsheet aktualisieren bringt Laufzeitf.1004
11.06.2014 11:02:21
Ken
Hallo,
ich habe einen kleinen Code in VB der nur beim ersten Mal funktioniert:
Global xlApp As Excel.Application
Global xlwrkbk1 As Excel.Workbook
Global xlsheet1 As Excel.Worksheet
Global strfilename As String
Global MyReg As String
Sub Excel()
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlwrkbk1 = xlApp.Workbooks.Open(strfilename)
Set xlsheet = xlApp.Application.ActiveWorkbook.Sheets(MyReg)
xlApp.Selection.QueryTable.Refresh BackgroundQuery:=False
xlApp.Application.ActiveWorkbook.Save
xlApp.Application.ActiveWorkbook.Close
xlApp.Application.Quit
xlApp.Quit
Set xlApp = Nothing
Set xlwrkbk1 = Nothing
Set xlsheet = Nothing
End Sub
MyReg = Tabname
strfilename = wo sich das File befindet incl. Filname (z.B. c:\test.xls)
Mit Call Excel spreche ich es an und beide Variablen (Myreg und strfilename) haben sind richtig _ "befüllt". Beim ersten durchlauf wird das Sheet - nennen wir es Test1.xls) aktualisiert. Nach End

Sub springe ich zurück, "befülle" wieder meine Variablen und springe mit call Excel und dann  _
kommt bei:
xlApp.Selection.QueryTable.Refresh BackgroundQuery:=False
die Fehlermeldung: Laufzeitfehler 1004
Weiß jemand was ich hier vergessen habe oder falsch mache?
Vielen Dank!

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excelsheet aktualisieren bringt Laufzeitf.1004
11.06.2014 11:26:37
Hajo_Zi
Ich würde das Makro nicht Excel nenen da Du im weiteren Verlauf
Excel.Application zu stehen hast. Dein Makro hat keine Application.

AW: Excelsheet aktualisieren bringt Laufzeitf.1004
11.06.2014 11:33:09
Ken
Hallo Hajo,
habe Excel umbenannt und alle Applicationen gelöscht: z.B.
xlApp.ActiveWorkbook.Save
Trotzdem kommt diese Fehlermeldung immer noch :-(
Gruß
Ken

AW: Excelsheet aktualisieren bringt Laufzeitf.1004
11.06.2014 11:46:58
Ken
Nur nochmal zur Info, hatte es so verstanden, dass Application weg muss:
Sub E_Verarbeitung()
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlwrkbk1 = xlApp.Workbooks.Open(strfilename)
Set xlsheet = xlApp.ActiveWorkbook.Sheets(MyReg)
xlApp.Selection.QueryTable.Refresh BackgroundQuery:=False
xlApp.ActiveWorkbook.Save
xlApp.ActiveWorkbook.Close
xlApp.Quit
xlApp.Quit
Set xlApp = Nothing
Set xlwrkbk1 = Nothing
Set xlsheet = Nothing
End Sub
Sorry wenn ich für den ein oder anderen etwas wirr schreibe, aber da der Code beim ersten Durchlauf funktioniert verstehe ich einfach nicht warum er beim zweiten Durchlauf die Fehlermeldung bringt.
Gruß
Ken

Anzeige
AW: Excelsheet aktualisieren bringt Laufzeitf.1004
11.06.2014 12:21:48
Nepumuk
Hallo,
so besser?
Public Sub RefreshQueryTable()
    
    Dim xlApplication As Object, xlWorkbook As Object
    Dim xlWorksheet As Object
    
    Set xlApplication = CreateObject("Excel.Application")
    xlApplication.Visible = True
    
    Set xlWorkbook = xlApplication.Workbooks.Open(strfilename)
    
    Set xlWorksheet = xlWorkbook.Worksheets(MyReg)
    
    xlWorksheet.QueryTable(1).Refresh BackgroundQuery:=False
    
    xlWorkbook.Close SaveChanges:=True
    
    xlApplication.Quit
    
    Set xlApplication = Nothing
    Set xlWorkbook = Nothing
    Set xlWorksheet = Nothing
    
End Sub

Mich wundert es, dass deine Version überhaupt funktioniert. Denn du benutzt die Selection-Eigenschaft um eine Zelle anzusprechen die sich innerhalb der QueryTable-Eigenschaft befindet. Das ist eher zufallsbedingt anstatt gesteuert. Denn woher willst du wissen, welche Zelle beim letzten speichern der Mappe die aktive Zelle war?
Gruß
Nepumuk

Anzeige
AW: Excelsheet aktualisieren bringt Laufzeitf.1004
11.06.2014 12:33:11
Ken
Hallo Nepumuk,
mich wundert bei Excel gar nichts mehr...was aber an meinen mangelnden Excel-Kenntnissen liegt!
Vielen Dank für deinen Code, nur bleibt er schon beim ersten sheet hängen. Bei:
xlWorksheet.QueryTable(1).Refresh BackgroundQuery:=False
kommt die Fehlermeldung "Object unterstützt diese Methode oder Eigenschaft nicht".
Nochmal sorry wenn ich mit meinen Fragen nerve, aber irgendwie sah mein Code logisch aus :-)
Ich öffne ein Excelsheet, aktualisiere es und schließe es dann wieder um ein neues zu öffnen (so war mein Plan).
Gruß
Ken

AW: Excelsheet aktualisieren bringt Laufzeitf.1004
11.06.2014 12:41:08
Nepumuk
Hallo,
in welchem Programm läuft die Prozedur?
Gruß
Nepumuk

Anzeige
AW: Excelsheet aktualisieren bringt Laufzeitf.1004
11.06.2014 12:44:14
Ken
Hallo Nepumuk,
MIST, hatte ich vergessen zu erwähnen! Ich arbeite mit Access und der VBA Code ist dort enthalten.
Gruß
Ken

AW: Excelsheet aktualisieren bringt Laufzeitf.1004
11.06.2014 12:51:15
Nepumuk
Hallöchen,
teste mal ob das weglassen des Parameternamens etwas bringt:
xlWorksheet.QueryTable(1).Refresh False

xlWorkbook.Close True

Gruß
Nepumuk

Anzeige
AW: Excelsheet aktualisieren bringt Laufzeitf.1004
11.06.2014 12:57:23
Ken
Hallo Nepumuk,
gleiche Stelle mit gleicher Fehlermeldung. Sorry.
Gruß
Ken

Fehlt da nicht ein kleines...
11.06.2014 13:04:19
Case
Hallo, :-)
... s in:
xlWorksheet.QueryTable(1).Refresh BackgroundQuery:=False
Also:
QueryTables(1)
Servus
Case

AW: Fehlt da nicht ein kleines...
11.06.2014 13:11:08
Ken
Hallo Case & Nepumuk,
es LEBT!!!! Hatten wir übersehen und die Fehlermeldung war dann auch etwas deppert.
Wenn ihr mal in Köln seid, lade ich zum Eis ein (mit Excel-Tipps zu revanchieren macht nicht viel Sinn).
Vielen Dank!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige