• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

query bijwerken via VBA

Status
Niet open voor verdere reacties.

moensk

Gebruiker
Lid geworden
23 jun 2013
Berichten
712
ik heb volgende formule staan om een excel te laten openen en de query te laten bijwerken.
het openen werkt doch bij 2de deel bijwerken krijg ik volgende foutmelding

"fout 91 tijdens uitvoering : Objectvariabele of blokvariabele With is niet ingesteld"

script :

Private Sub CommandButton2_Click()

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Open("\\fs1\logistiek\Planlijst_VRE_VRT.xlsx")
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

End Sub
 
Het is een goede gewoonte om 1) een voorbeeldbestand te posten en 2) code tussen tags te plaatsen.Gebruik hiervoor de "#" in het menu balkje.

Ik doe er maar een slag naar; zonder voorbeeldbestandje is het natuurlijk lastig. Ik denk dat je geen selectie doet. Vervolgens ga je echter wel uit van een selectie:
Code:
[COLOR="#FF0000"]Selection[/COLOR].ListObject.QueryTable.Refresh BackgroundQuery:=False
 
ik had selection gebruikt om de querytabel aan te duiden
zonder selection krijg ik foutmelding 424
voorbeeld mee uploaden is moeilijk daar diverse excels worden opgeroepen
 
Dat maakt een antwoord verzinnen ook erg moeilijk. Ik zou het dus toch overwegen. Anders kom ik i.i.g. niet verder dan vingerwijzingen in hopelijk de goede richting.

Ik denk dus dat je wel moet aanduiden waar dat ListObject is te vinden, maar dus kennelijk niet met selection. Je kunt dan denken aan bv.:
Blad1.ListObject
ActiveWorkBook.Sheets("Blad1").ListObject
ThisWorkBook.Sheets("Blad1").ListObject
etc.
 
Ik zie dat je al mijn suggesties 1-op-1 hebt overgenomen. Het was bedoeld als mogelijke oplossingen (dus 3 verschillende opties) om de "Selection" te vervangen.

Ik wil met alle plezier helpen, hoewel ik niet denk de aangewezen persoon te zijn. Ik snap sowieso niet wat je wilt bereiken.

Je hebt "planlijst_VRE.xlsb". Hierin zit de macro. Met deze macro wil je denk ik de data ophalen uit "Planlijst_VRE_VRT.xlsx". In deze laatste zit een tabel met een query (Query - Planlijst_VRE_VRT). Gevoelsmatig is dit allemaal erg omslachtig, maar nogmaals ik heb geen idee wat de bedoeling is.

Kun je dit uitleggen?
 
planlijst_VRE_VRT bevat een ODBC koppeling.
deze excel mag door de gebruiker niet bewust geopend worden.
daarom heb ik nieuwe excel gemaakt "planlijst_VRE" en via de knop wordt op de achtergrond de andere geopend en bijgewerkt, dat is de bedoeling
 
Je hebt het bestand in een nieuwe instantie van Excel geopend, dan moet je ook met die instantie werken:

Code:
objExcel.Workbooks("planlijst_VRE.xlsb").Worksheets("data_planlijst").ListObjects(1).Querytable.Refresh False
 
Jan,
Thanks, zat klein foutje in de code workbooks("planlijst_VRE.xlsb" moest "planlijst_VRE_VRT.xlsx" zijn
maar werkt naar wens :) super bedankt
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan