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

vast Path aangeven voor geheel document

Status
Niet open voor verdere reacties.

Fredemel

Gebruiker
Lid geworden
2 jun 2008
Berichten
117
Als ik documenten open in excel wil ik graag éénmalig een variabel instellen voor mijn werkmap (path).
Dit heb ik nu staan:
Code:
Public myLocatie As String

Private Sub Workbook_Open()
myLocatie = "I:\EXCEL\"
etc.....
"mylocatie" wil ik in alle geopende documenten aan kunnen roepen. Dit werk zo niet in alle documenten.... Hoe kan ik dit het beste aanpakken?
 
Bedoel je zoiets? (Het is een voorbeeld op jouw code, zodat je ziet hoe in te vullen, maar werkt misschien niet)
Code:
Private sub Workbook_open()
Dim wb as Workbook
For Each wb in Application.Workbooks
StandingCodeLines = ActiveDocument.VBProject.VBComponents("ThisWorkbook").CodeModule.CountOfLines

If StandingCodeLines > 0 Then
ActiveDocument.VBProject.VBComponents("ThisWorkbook").CodeModule.DeleteLines 1, StandingCodeLines
End If

strN = strN & "Public myLocatie As String" & vbCr
strN = strN & "Private Sub Workbook_Open()" & vbCr
strN = strN & "myLocatie = "I:\EXCEL\" & vbCr
strN = strN & "End Sub" & vbCr
ActiveDocument.VBProject.VBComponents("ThisWorkbook").CodeModule.AddFromString strN
End Sub
 
Laatst bewerkt:
spaarie,

Inderdaad hij werkt niet.. :(

Maar is dit niet niet een beetje "overdone"....? Ik schreef voor alle documenten, maar dan wel binnen excel (2010-64bit).
Jouw code snap ik als leek helaas niet....
Is er binnen vba-excel geen mogelijkheid om een variabele "vast" te declareren. Ook niet in de "personal.xlsb"
 
Deze code maakt een VBA code in alle open Excel documenten aan...
Ik dacht het de bedoeling was dat je "myLocatie" in al je openstaande documenten gedefinieerd wilde hebben.

Dus als ik het goed begrijp wil je bij het opstarten van bijvoorbeeld een nieuw document, van te voren al een myLocatie hebben staan...
Dan kan je toch een sjabloon gebruiken waar je dit in defineert.

Als dit het niet is, graag nog wat nadere uitleg, want dan zitten we op verschillende sporen... :)
 
Laatst bewerkt:
Spaarie,

dank voor je snelle reactie. Ik ben onduidelijk.
-Ik open een calculatiebestand
-in workbook_open() wil ik de variabele myLocatie declareren voor alle tabbladen van dit bestand.
-Een macro binnen het calc-bestand opent een klantenbestand die evt na aanpassing binnen het zelfde pad/path opgeslagen moet worden.
En daar wil ik dan graag die vooraf gedeclareerde variabele voor gebruiken i.p.v. het path handmatig aan te gevens binnen "klantbestand"

Ik hoop dat ik nu duidelijker ben.... :eek:
 
Sorry voor mijn late reactie, maar ik kom er gewoon niet uit wat je nou wilt...

Je wilt voor elk tabblad een andere verwijzing hebben naar myLocatie?
Dus op sheet1 staat je verwijzing myLocatie naar I:\EXCEL\mapje1 en op sheet2 naar I:\EXCEL\mapje2. Bedoel je dit?
 
Spaarie, geen probleem. Ben allang blij da'k reactie krijg.

- Ik open het "moederbestand"
- Zo gauw het bestand zich opent wil ik AUTOMATISCH een variabele myPath of zo.... declareren met bijv: "I:\EXCEL\Map01\".
- Ik open een tweede bestand met allerlei koppelingen met het "moederbestand"
- Binnen dit tweede bestand wil ik ook myPath gebruiken om binnen VBA het zelfde path te gebruiken.
Ik hoop dat dit duidelijker is.... Bvd & Gr Fred
 
Warme (en andere....),
da's wel heel veel code voor een "global" variabele....
Kan dat écht niet simpeler....? Cellen kunnen wel gekoppeld/verwezen worden binnen bestanden van Excel zelf.
Is er geen gemakkelijkere methode om binnen excel te verwijzen naar een (op welke manier dan ook...) var om die op te roepen....?
 
Is het een optie om het pad in je moeder bestand in een cel te zetten en vanuit de andere bestanden daar naar te verwijzen?

Niels
 
Hoezo veel code nodig ???
Zet onderstaande in je moederbestand
Code:
Public myLocatie As String

Private Sub Workbook_Open()
    myLocatie = "I:\EXCEL\"
    Application.ExecuteExcel4Macro "SET.NAME(""Test"",""I:\EXCEL\"")"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.ExecuteExcel4Macro "SET.NAME(""Test"")"
End Sub

En draai deze dan eens in een ander geopend bestand.

Code:
Sub tst()
    myLocatie = Application.ExecuteExcel4Macro("Test")
    MsgBox myLocatie
End Sub
 
Niels,...
Ik heb jouw oplossing niet geprobeerd want Warme bakkertje zijn oplossing is PERFECT als je een "moederbestand" opent en daarna in de andere bestanden een macro maakt waar de opslag-variabele van het moederbestand te gebruiken is.

En Warme bakkertje.....
Na jouw verwijzing gelezen te hebben (en engels is niet 'n sterk punt en lezen al helemaal niet...) zag ik door de bomen het bos niet meer. Jouw voorbeeldcode is voor mij écht dé uitkomst...! Ik wil je dan ook enorm bedanken...!
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan