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

VBA code openen specifiek bestand

Status
Niet open voor verdere reacties.

AD1957

Verenigingslid
Lid geworden
27 feb 2016
Berichten
1.990
Met onderstaande code ben ik zover gekomen dat ik de map "historie onderhoud" open.
in deze map staan bestanden met de namen uit kolom A.
Nu zou ik graag bereiken dat door dubbelklic op een cel in kolom A direct het genoemde bestand word geopend.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Column = 1 Then
Application.Dialogs(1).Show "C:\users\user\Desktop\historie onderhoud\[COLOR="#FF0000"]naam kolom A[/COLOR].xlsb"
End If
End Sub

Bekijk bijlage Map1.xlsb
 
Laatst bewerkt door een moderator:
Ad,

probeer het eens zo:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True

Dim WB As Workbook
Dim str_Path As String
Dim str_FileName As String

If Target.Column = 1 Then
    str_Path = "C:\users\user\Desktop\historie onderhoud\"
    str_FileName = ActiveCell.Value & ".xlsb"
        
    '--Check of bestand wel bestaat--
    If Not Dir(str_Path & str_FileName) <> "" Then
        MsgBox "Bestand niet gevonden", vbCritical
        Exit Sub
    End If
    
    Set WB = Workbooks.Open(str_Path & str_FileName)
End If

End Sub


Lambert
 
Laatst bewerkt:
Hoi Lambert,
Ik was zelf ook al een eind in deze richting gevorderd en ga nu eens kijken waar het bij mij fout gaat
Hoop dat de code van jou werkt.
 
Hoi Lambert,
Jouw code werkt perfect, dank hiervoor.
Zit echter nog met een ander probleem:
Voor het aanmaken van de bestanden gebruik ik deze code:
HTML:
Dim NieuwFact As Variant
On Error GoTo oops
ActiveSheet.Copy
NieuwFact = "C:\Users\user\Desktop\historie onderhoud\" & Range("B2").Value & ""

ActiveWorkbook.SaveAs NieuwFact, FileFormat:=50
oops:

Nu doet zich het probleem voor dat als in cel B2 een punt als leesteken staat het bestand niet wordt opgeslagen
dus als ik bijvoorbeeld in cel B2 "Blezer dhr. A.J." heb staan wordt er niet opgeslagen. (zonder de punten wel)
Krijg het niet opgelost.
 
deze haalt de illegale leestekens uit de bestandsnaam.

Code:
Sub g()

Dim NieuwFact As Variant
Dim FileName As String


FileName = Range("B2")

Myarray = Array("<", ":", ">", "|", "/", "*", "\", "?", """", ".")
For x = LBound(Myarray) To UBound(Myarray)
    FileName = Replace(FileName, Myarray(x), "", 1)
Next x

On Error GoTo oops
ActiveSheet.Copy
NieuwFact = "C:\Users\user\Desktop\historie onderhoud\" & FileName
 
ActiveWorkbook.SaveAs NieuwFact, FileFormat:=50
oops:


End Sub
 
Dit zijn de tekens die een bestand niet mag bevatten.
"< > ? [ ] : | of *"
De punt mag gerust.
Je kan gerust een bestand opslaan met drie punten "...xlsm"
 
Hoi Harry,
En toch werd het bestand niet opgeslagen.
Echter door toevoeging van .xlsb aan het eind van de code op regel 4 werkt het wel.

HTML:
NieuwFact = "C:\Users\user\Desktop\historie onderhoud\" & Range("B2").Value & ".xlsb"
 
Dag Albert,

Dat was inderdaad de boosdoener en niet de punten.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan