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

Openen van Workbook in VBA

Status
Niet open voor verdere reacties.

rotrax

Gebruiker
Lid geworden
20 jun 2003
Berichten
99
Ik heb een beetje moeite met het openen van een excell bestand in VBA. Onder een knop heb ik de volgende code staan:

Workbooks.Open Filename:= _
"h:\Documents and Settings\Administrator\My Documents\Versneld traject\absentie.xls"

Nu bevind deze werkmpa zich op dezelfde plek als het actuele bestand (dus waarom moet ik dan het gehele pad opgeven)

Verder weet ik zeker dat ik alle bestanden moet gaan verplaatsen naar het netwerk toe dus dan moet ik alles weer gaan aanpassen.

Nu de vraag....

Is er niet een makkelijkere manier om te verwijzen naar een andere werkmap in VBA
 
Gebruik een variable voor je pad. Je hoeft deze dan alleen in het begin aan te passen.

Bijvoorbeeld:
Dim myProjectDir As String

myProjectDir = "h:\Documents and Settings\Administrator\My Documents\Versneld traject\"

Workbooks.Open Filename:= myProjectDir & "absentie.xls"

Eventueel kun je de waarde voor myProjectDir ook nog opgeven via een inputbox.
 
hoi Jan,

bedankt voor je snelle reactie, dit scheelt mij inderdaad een hoop werk!

is het mogelijk dat wanneer een link niet te vinden is (bijvoorbeeld omdat het netwerk eruit ligt) hij geen foutmelding geeft maar gewoon de hele boel negeerd en verder gaat met het uitvoeren van zijn script.

ik dacht zelf aan application.displayalerts = false maar dat werkt dus niet dus zal het wel in de if then else hoek zitten, denk ik

groet

RTR
 
Misschien is On Error Resume Next een oplossing.
Persoonlijk vind ik dat een macro moet stoppen als de verbinding niet werkt. Als er dn toch gegevens getoond worden plaats ik twijfels bij de betrouwbaarheid.
Zoek even bij de help van VBA naar Error.
Mogelijk staat daar nog een oplossing tussen.
 
toch nog niet helemaal lekker

Even leek het erop dat alles werkte, nu merk ik dat hij toch niet helemaal doet wat ik wil.

in this workbook plaats ik:

Dim myProjectDir As String

myProjectDir = "h:\Documents and Settings\Administrator\My Documents\Versneld traject\"

vervolgens plaats ik in een sheet onder een button:

Workbooks.Open Filename:= myProjectDir & "absentie.xls"

hij snapt er nu niets van behalve als ik onder de button ook het eerste gedeelte zet (dim etc.)

maar ja dan kan ik net zo goed alles handmatig invullen of niet.

wat doe ik nou vout?

P.s. hij geeft aan dat de string (myProjectDir, in dit geval) leeg is
 
Laatst bewerkt:
De variabele is dan alleen bekend in de betreffende routine.
Gebruik in plaats van Dim myProjectDir As String eens Public myProjectDir As String.
Hiermee declareer je de variable zodat deze in alle modules gebruikt kan worden.
Dit declareren moet wel als eerste gebeuren.
 
Na enige vorm van hectiek kwam ik weer volledig tot mijn verstand en jawel het werkt.

bedankt!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan