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

excel bestand openen, naam in cel.

Status
Niet open voor verdere reacties.

nmeijer

Gebruiker
Lid geworden
17 sep 2012
Berichten
81
Beste,

Ik wil dmv een macro een excel bestand openen. De naam van dit bestand is variabel en staat in cel A1. daarnaast wil ik dat als het bestand niet bestaat er naar een tweede bestand wordt gezocht, hiervan staat de naam in A2. Tot nu toe kom ik niet verder als de volgende macro:

Code:
Sub Macro1()

    ChDir "H:\My Documents\Capaciteits planning\Opslag bestanden"
    Workbooks.Open Filename:= _
        "H:\My Documents\Capaciteits planning\Opslag bestanden\1, 24-7-2013.xlsx"
End Sub

Bij voorbaat dank,

Niels
 
Staat in A1 en A2 alleen de naam van het bestand of is dat inclusief de extensie en het volledige pad naar het bestand?

Voorbeeldje:

Code:
Sub Macro1()
    Dim Pad As String
    Dim docA1 As String
    Dim docA2 As String
    
    Pad = "H:\My Documents\Capaciteits planning\Opslag bestanden\"
    docA1 = Range("A1").Value & ".xlsx"
    docA2 = Range("A2").Value & ".xlsx"
    
    If Dir(Pad & docA1) <> "" Then
        Workbooks.Open Filename := Pad & docA1
    Else
        If Dir(Pad & docA2) <> "" Then
            Workbooks.Open Filename := Pad & docA2
        Else
            MsgBox "Opgegeven documenten niet gevonden", vbExclamation
        End If
    End If
End Sub

Dit kan nog veel mooier en compacter maar zo is het duidelijk leesbaar en makkelijk te begrijpen.
 
Laatst bewerkt:
Dankje voor de reactie. Momenteel heb ik alleen de bestandsnaam in de cel staan, hier kan ik ook heel de extensie inzetten, ik weet niet wat beter is?
De bedoeling van de macro is om de bestanden een voor een te openen, dus eerst A1 dan A2, als A1 niet bestaat moet er zonder melding worden doorgegaan naar A2.

bvd,
 
Dat is precies wat mijn voorbeeld doet.
Hij geeft alleen een melding als het document in A2 ook niet bestaat en je hebt alleen de naam van het document in de cel nodig, zonder extensie en zonder padnaam.

Maar bedoel je dat als A1 wel bestaat hij deze moet openen en daarna ook A2?
Want dan is er nog een aanpassing nodig.
 
Laatst bewerkt:
Ik wil dit stuk code uitbreiden met een bewerking die in de gespecificeerde bestanden moet worden uitgevoerd, eerst in A1 daarna ook in A2. Dus als A1 bestaat moet eerst deze worden geopend en daarna ook A2.

Mvg,
 
Ok. Dan dus zo, en zonder meldingen:

Code:
Sub Macro1()
    Dim Pad As String
    Dim docA1 As String
    Dim docA2 As String
    
    Pad = "H:\My Documents\Capaciteits planning\Opslag bestanden\"
    docA1 = Range("A1").Value & ".xlsx"
    docA2 = Range("A2").Value & ".xlsx"
    
    If Dir(Pad & docA1) <> "" Then
        Workbooks.Open Filename:=Pad & docA1
    End If
    
    If Dir(Pad & docA2) <> "" Then
        Workbooks.Open Filename:=Pad & docA2
    End If
End Sub
 
Top, precies zoals ik het bedoelde. Hij loopt alleen vast als de A2 niet bestaat, hoe kan ik dat oplossen?

Bvd,
 
Wat bedoel je met vastlopen? Hij moet helemaal niks doen als A2 niet bestaat.
 
Ik krijg de mwlding runtime error 1004, omdat de file niet bestaat. A1 gaat wel correct.
 
K heb het al, k had een foutje gemaakt :o.

bedankt voor de hulp :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan