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

Reeds open bestand benaderen via macro

Status
Niet open voor verdere reacties.

van Beppestein

Gebruiker
Lid geworden
6 nov 2008
Berichten
11
Beste excelgebruikers,

Als ik een bestand open met een macro(knop) en daarna hetzelfde bestand nogmaals wil benaderen, dan krijg ik een foutmelding omdat het bestand reeds geopend is.

Het lijkt mij dat er een regel aan de betreffende macro toegevoegd kan worden zodat ook bij een volgende druk op de knop het gewenste bestand verschijnt.
 
Wat is de code nu?

De macro die gebruikt wordt is niet anders dan het volgende:

Workbooks.Open Filename:= _"bestand"

Na enig zoeken denk ik dat het ook moet lukken met Case select. Echter hier ontbreekt het mij aan voldoende VBA kennis.
 
Van Beppestein, Bekijk deze link maar 'ns...

Groet, Leo

Hallo Leo,

Ik ben nog maar een beginner als het gaat om VBA. Ik begrijp de mogelijke oplossing vooer een deel wel. Ik weet alleen niet exact hoe ik een function moet aanroepen binnen de macro. Ook zie ik in genoemd voorbeeld niet wat er eventueel nog aan eigen namen van bestanden moet worden ingevuld.

van Beppestein
 
Ik weet alleen niet exact hoe ik een function moet aanroepen binnen de macro.

Dat staat toch in de voorbeeldcode:

Code:
If Not WorkbookOpen("MyWorkbookName.xls") Then 
    Workbooks.Open "MyWorkbookName.xls"
End If

Als je het wat duidelijker wil:


Code:
If WorkbookOpen("MyWorkbookName.xls") = True Then 
    'dit bestand is al open
Else
    'dit bestand is nog niet open en wordt nu geopend:
    Workbooks.Open "MyWorkbookName.xls"
End If
 
Andere manier

Code:
 Dim WB As Workbook
    Application.ScreenUpdating = False
    On Error Resume Next
    Set WB = Workbooks("jouwbestand.xls")
    On Error GoTo 0
    If WB Is Nothing Then
        Set WB = Workbooks.Open(Filename:="D:\Mijn documenten\Helpmij\jouwbestand.xls")
    Else
        WB.Activate
    End If

Mvg

Rudi
 
Dank je wel!

Andere manier

Code:
 Dim WB As Workbook
    Application.ScreenUpdating = False
    On Error Resume Next
    Set WB = Workbooks("jouwbestand.xls")
    On Error GoTo 0
    If WB Is Nothing Then
        Set WB = Workbooks.Open(Filename:="D:\Mijn documenten\Helpmij\jouwbestand.xls")
    Else
        WB.Activate
    End If

Mvg

Rudi



Beste Rudi,

Deze oplossing werkt super!

Mvg

van Beppestein
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan