• 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 maken om bestand te openen met variabele naam

Status
Niet open voor verdere reacties.

gast0699

Gebruiker
Lid geworden
19 jul 2013
Berichten
73
Goedemorgen,

Ik heb een leuke, ik gebruik in excel macro's die ik weer koppel aan knoppen om verschillende veelgebruikte bestanden te openen.
Nu is het alleen zo dat ik nu een bestand wil toevoegen d.m.v een macro gekoppeld aan een knop, waarvan de bestandsnaam veranderd.

Dit is wat ik als huidige macro gebruik:

Sub Dagbezetting_Response_knopOverzichtslijstTrainingen()
Workbooks.Open ("G:\Groups\TD\overzichtslijst trainingen.xls")
End Sub

Nu is het dus zo dat het .xls bestand een variabele is, hij veranderd dus steeds van naam ik gok zo een beetje dat ik hiervoor VBA moet aanspreken...
Alleen ik ben nu 2 dagen aan het uitzoeken op het internet maar tot op heden nog geen succes.

Kunnen jullie me helpen?

Gr

Jeffrey
 
Je kan in een cel de volgende formule zetten;
Code:
=DEEL(CEL("bestandsnaam");VIND.SPEC("[";CEL("bestandsnaam"))+1; VIND.SPEC("]";CEL("bestandsnaam"))-VIND.SPEC("[";CEL("bestandsnaam"))-1)
Dan kan je de macro naar deze cel laten verwijzen.
De aangepaste naam komt overigens pas tevoorschijn als er is opgeslagen.

Of als je het hele pad in een cel wilt hebben;
Code:
=CEL("bestandsnaam";A3))
 
Laatst bewerkt:
Hey Arliator,

Ik begrijp alleen niet precies hoe ik de macro moet maken!

gr

jeffrey
 
Jeffrey,

Ik heb je vraag te vlug gelezen.
Want mijn oplossing werkt alleen als het bestand waarin je werkt een andere naam krijgt.
Dus in de map G:\Groups\TD staan verschillende Excel bestanden die elke keer een andere naam hebben.
Deze bestanden wil je openen vanuit 1 centraal Excel bestand.
Heb ik je vraag zo goed begrepen?

Als dat zo is, is er dan nog wel een logica in de benaming?
Bijvoorbeeld de dag van vandaag?
Of een volgnummer?
 
Hey,

Ja dit klopt precies, ik heb dus een centraal excel bestand waar deze bestanden uit opgeroepen worden.
Het is een bestand die alleen met weeknummer veranderd, soort van:

Weekplanning week 45.xlsx
Weekplanning week 46.xlsx
Weekplanning week 47.xlsx

etc etc etc

Gr

Jeffrey
 
Als je een variabele week wilt openen, dan kun je deze code gebruiken;
Code:
Sub Dagbezetting_Response_knopOverzichtslijstTrainingen()
Dim Weeknummer
Dim Pad
Pad = "G:\Groups\TD\Weekplanning week "

Weeknummer = InputBox("Welk weeknummer wil je ophalen?")
Weeknummer = Pad & Weeknummer & ".xlsx"
Workbooks.Open (Weeknummer)

 End Sub
Je kan natuurlijk de tekst bij de Inputbox zelf aanpassen naar eigen smaak.
Let wel op dat als de map verandert, je in de code ook het pad moet veranderen.
 
Hey Arliator,

Alvast bedankt voor je input, daar ben ik heel erg blij mee, wel had ik nog een vraag.

Code:
Workbooks.Open (Weeknummer)

Moet ik hier nog een weeknummer invoeren ofzo?

En het is maar een bestand btw, iedere nieuwe week wordt het bestand gewoon hernoemd naar de nieuwe week waar we inzitten.

Gr

Jeffrey
 
Jeffrey,

Nee, dat hoeft niet.
Ik stop in het woord weeknummer het getal wat je hebt ingegeven bij de vraag.
Dus als je op de vraag Welk weeknummer wil je ophalen? 10 hebt ingevuld, dan is weeknummer gelijk aan 10, vul je 11 in, dan is weeknummer gelijk aan 11.
Pad is gelijk aan G:\Groups\TD\Weekplanning week
Dus als ik dan zeg weeknummer = Pad & Weeknummer, dan heb je dus G:\Groups\TD\Weekplanning week 11, omdat het een xlsx bestand is, heb ik er .xlsx nog achter gezet, waardoor de code weet dat weeknummer G:\Groups\TD\Weekplanning week 11.xlsx is.
Wellicht als ik een ander woord gebruik voor het laatste weeknummer, dat het dan duidelijk is.
Dit werkt ook;
Code:
Sub Dagbezetting_Response_knopOverzichtslijstTrainingen()
Dim Weeknummer
Dim Pad
Dim Bestand
Pad = "G:\Groups\TD\Weekplanning week "
Weeknummer = InputBox("Welk weeknummer wil je ophalen?")
Bestand = Pad & Weeknummer & ".xlsx"
Workbooks.Open (Bestand)

 End Sub

Ik hoop dat het zo wat duidelijker is.
 
Als je altijd de huidige week wilt openen, dan werkt dit ook, zie het bestand.
Datum en weeknummer staan in Blad1, code kijkt naar cel A2 en opent altijd de huidige week.

Waarom ik Weeknummer(A2;21) heb gebruikt, staat hier
Dan om deze tekst;
ISO Week Numbers

Note: There is no built-in worksheet function for ISO weeks in Excel before Excel 2010, the formula and the function below will work in all Excel versions so it is a good option to use in your workbook if it will be used in different Excel versions. But FYI In Excel 2010(and also in Excel 2011 for the Mac) they add a argument of 21 to the Excel WeekNum function to get the Iso week number as result : =WEEKNUM(A1,21) and in Excel 2013 they finally add a new function named ISOWEEKNUM
 

Bijlagen

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