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

Fout in code om vanuit het ene bestand een ander te openen

Status
Niet open voor verdere reacties.

tkint

Gebruiker
Lid geworden
5 dec 2011
Berichten
754
Beste,

Ik wil binnen "beveiliging met 2 bestanden" het bestand "code" openen.
Ik heb deze vraag al eerder gesteld en kreeg deze code :
Code:
With getobject("Z:\tkint\"code.xls")
  sheets(1).cells(1) = .sheets(1).cells(1,26)
  .close 0
End with
De instructie getobject ..... wordt niet herkend.

Ik heb wat gezocht en vond deze code:
Code:
Private Sub Workbook_Open()
Application.ScreenUpdating = False
wbnaam = "C:\Users\Justien\Documents\Robert\JvandenHeuvel" & "\code.xls"
    Workbooks(wbnaam).Open
    ActiveWorkbook.Sheets("Blad1").Range("Z1").Copy
    ThisWorkbook.Sheets("Blad1").Range("Z1").PasteSpecial
    Workbooks(wbnaam).Close True
Application.ScreenUpdating = True
End Sub
Ik krijg de foutmelding in de regel Workbooks(wbnaam).Open dat het subscript buiten het bereik valt. In bijlage de 2 bestanden.
Enig idee wat de oorzaak is?
 

Bijlagen

  • beveiliging met 2 bestanden.xlsm
    14,5 KB · Weergaven: 30
  • code.xlsx
    8,1 KB · Weergaven: 27
De bovenste code heeft een quote (") teveel. Ik vermoed dat in beide gevallen simpelweg de file niet wordt gevonden.
 
Werkt deze?
Code:
Private Sub Workbook_Open()
Application.ScreenUpdating = False
 FilePath = "C:\Users\Justien\Documents\Robert\JvandenHeuvel\"
 fName = Dir(FilePath & "code.xlsx")
    Workbooks.Open (FilePath & fName)
    ActiveWorkbook.Sheets("Blad1").Range("Z1").Copy
    ThisWorkbook.Sheets("Blad1").Range("Z1").PasteSpecial
    Workbooks("code.xlsx").Close SaveChanges:=True
Application.ScreenUpdating = True
End Sub
 
Beste,

Prima, deze code functioneert. Maar hoe ondervang ik een fout bij het ophalen van het bestand indien het bestand niet bestaat?
 
Zoiets?
Code:
Private Sub Workbook_Open()
Application.ScreenUpdating = False
 FilePath = "C:\Users\Justien\Documents\Robert\JvandenHeuvel\"
 fName = Dir(FilePath & "code.xlsx")
 If Not Dir("C:\Users\Justien\Documents\Robert\JvandenHeuvel\code.xlsx", vbDirectory) = vbNullString Then
    Workbooks.Open (FilePath & fName)
    ActiveWorkbook.Sheets("Blad1").Range("Z1").Copy
    ThisWorkbook.Sheets("Blad1").Range("Z1").PasteSpecial
    Workbooks("code.xlsx").Close SaveChanges:=True
Else
MsgBox "Spreadsheet bestaat niet", vbCritical, "geen resultaat"
End If
Application.ScreenUpdating = True
End Sub
 
Beste,

Ik zal de code straks uitproberen. Bedankt. Het komt er dus op neer te controleren of Dir al dan niet iets bevat. Juist?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan