• 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.

macro om data uit ander document op te halen

Status
Niet open voor verdere reacties.
Ik heb beide documenten in een aparte map gezet (Afbeelding 1)
Als ik Stuklijst.xlsb open krijg ik foutmelding (Afbeelding 2)
Als ik deze sluit en ordernummer wijzig krijg ik foutmelding (Afbeelding 3)
 

Bijlagen

  • Afbeelding 1.png
    Afbeelding 1.png
    6,6 KB · Weergaven: 16
  • Afbeelding 2.png
    Afbeelding 2.png
    7,1 KB · Weergaven: 18
  • Afbeelding 3.png
    Afbeelding 3.png
    28,1 KB · Weergaven: 16
Mogelijk staan de op te halen gegevens niet in Sheet(1)
probeer dit eens.
Code:
Private Sub Workbook_Open()
    With GetObject(ThisWorkbook.Path & "\Order_data.xlsx")
      sn = .Sheets("Order").UsedRange
      .Close
    End With
End Sub
En anders wijzig Sheets("Order") in de juiste BLadnaam

p.s. Bij mij werkt het gewoon.
 
document oder_data.xlsx heeft maar 1 tabblad, genaamd "Order"
Aanpassing helpt niet. Bij openen blijft foutopsporing naar regel "With GetObject(ThisWorkbook.Path & "\order_data.xlsx")" verwijzen
Ik heb geen idee waar ik het probleem nu moet zoeken.
Is het overigens niet te maken dat het vanuit een module gestuurd wordt?
Dus zonder code in ThisWorkbook en sheet
 
Als ik jouw bestand open, zit er een beveiliging op. Is die er wel af voordat je de macro runt?
 
Laatst bewerkt:
Voeg een regel toe en laat het resultaat zien:

Code:
Private Sub Workbook_Open()
    msgbox ThisWorkbook.Path & "\Order_data.xlsx"

    With GetObject(ThisWorkbook.Path & "\Order_data.xlsx")
      sn = .Sheets("Order").UsedRange
      .Close
    End With
End Sub
 
Zonder VBA.

Druk onder Tab Data op Refresh All (dat is je knop). Je krijgt nu een foutmelding.
Ga naar de query en vul je correcte pad in. Dat wijst zichzelf.

Code:
File.Contents("C:\Users\XXX\Downloads\Order_data (1).xlsx")
 

Bijlagen

Zucht ...
Omdat het pad naar mijn One-Drive verwees had ik de bestanden verplaatst naar C:\test ...
En toen werkte het wel zoals het moet ;-)
Bedankt voor alle reacties en het meedenken!

Kan dit ook als module opgezet worden? Zodat ik er een knop van kan maken, zodat de gebruiker bepaald wanneer de data opgehaald moet worden.
 
Heb je het over de Query?

Code:
sub jec()
thisworkbook.refreshall
end sub
 
@JEC - Nee ik heb het niet over de query. Ik wil de functie in een apart document toevoegen waar al onze macro's in staan die iedereen kan gebruiken. dit bestand wordt opgeslagen in de map C:\Users\swanwil\AppData\Roaming\Microsoft\Excel\XLSTART
Deze wordt dan automatisch (verborgen) mee opgestart als Excel geopend.
 
De query kan ook iedereen gebruiken zonder macro. Is bovendien uitermate geschikt om data uit andere bestanden te halen.
Verder zijn macro's vaak op maat gemaakt. Dus in andere bestanden kun je ze meestal niet gebruiken (tenzij het een algemene functie is). Een extra open bestand met alleen opgeslagen macro's voegt naar mijn mening geen waarde toe.
 
Laatst bewerkt:
@JEC - Ik snap je punt, maar dan zouden we in alle stuklijsten die query moeten maken. Daarom de voorkeur voor een macro zodat we die in het macrobestand kunnen opnemen en iedereen die kan gebruiken
 
Ik heb nu een werkende macro, maar vermoed dat ie wel wat verbeterd kan worden.
Iemand suggesties?
Bijgevoegd de 2 voorbeeldbestanden.
De definitieve order_data wil ik openen om de data te verversen (zit een query achter) en omdat het vertikaal zoeken sneller gaat als het bestand geopend is (vanwege de 223000 regels in order_data)
 

Bijlagen

Doe het eens zo:
 

Bijlagen

Laatst bewerkt:
@edmoor - Dit is precies wat ik bedoelde, bedankt daarvoor!
Toch nog enkele vragen. Hopelijk kan je me helpen;
Kan dit ook als er een wachtwoord op het Order_data.xlsx bestand staat?
Kan ik het pad naar Order_data.xlsx aanpassen?
Tevens wordt Order_data.xlsx weggeschreven als verborgen bestand als ik na Refresh.All een save gebruik. Enig idee waar dit in kan zitten?
Als ik de module in ons (Persnlk.xls) bestand zet waar de andere macro's ook inzitten wat altijd op de achtergrond mee geopend wordt (want staat in de map C:\Users\swanwil\AppData\Roaming\Microsoft\Excel\XLSTART), blijven de cellen leeg na het starten van de macro
 
Laatst bewerkt:
Kan dit ook als er een wachtwoord op het Order_data.xlsx bestand staat?
- Er wordt dan gevraagd om het wachtwoord. Dat kan ook automatisch maar dan
- zie je dat document geopend en gesloten worden.


Kan ik het pad naar Order_data.xlsx aanpassen?
- Dat staat gewoon in de VBA code

Tevens wordt Order_data.xlsx weggeschreven als verborgen bestand als ik na Refresh.All een save gebruik. Enig idee waar dit in kan zitten?
- Geen idee

Als ik de module in ons (Persnlk.xls) bestand zet waar de andere macro's ook inzitten wat altijd op de achtergrond mee geopend wordt
(want staat in de map C:\Users\swanwil\AppData\Roaming\Microsoft\Excel\XLSTART), blijven de cellen leeg na het starten van de macro
- Persnlk.xls en XLSTART gebruik ik nooit omdat ik dat onhandig vind. Voor dat soort
- code maak ik liever een invoegtoepassing.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan