markvhelvoort
Nieuwe gebruiker
- Lid geworden
- 4 jun 2011
- Berichten
- 2
Hallo,
Ik heb een vraagje waar ik al een tijdje niet uit kom, en ik hoop dat jullie mij hier kunnen helpen.
Ik heb een Excel-bestand die na het uitvoeren van een macro zichzelf opslaat onder een andere naam (gedefineerd in cel R5, cel Q5 bevat de huidige (oude) naam), en dan moet het oude bestand verplaatst worden. Nu weet ik dat je een bestand niet verplaatst kan worden als het geopend is, dus wordt er hiervoor het nieuwe Excel-bestand geopend die het oude bestand afsluit, het bestand verplaatst en dan het nieuwe bestand ook afsluit. Lastig uit te leggen maar ik hoop dat de code verklaart.
Oud bestand:
Nieuw bestand (wat dus door het oude bestand geopend wordt):
Nu is het zo dat de code in het nieuwe bestand uitgevoerd wordt tot en met: Workbooks(naamvoor & ".xls").Close savechanges:=True
Hierna stopt de macro zonder foutmelding. Als ik de macro stap voor stap uitvoert, werkt hij wel volledig, maar dus niet bij het openen vanuit het oude bestand. Ik dacht dat het misschien aan de macrobeveiliging kon liggen, dus ik heb om dit te testen alle macro's toe laten staan. Helaas gaf dit ook geen resultaat.
Deze macro is getest op een Windows XP computer met Office 2010. De schijf waar het bestand verplaatst moet worden is een netwerkschijf waar ik volledige rechten heb.
Ik hoop dat iemand mij kan helpen.
Met vriendelijke groet,
Mark
Ik heb een vraagje waar ik al een tijdje niet uit kom, en ik hoop dat jullie mij hier kunnen helpen.
Ik heb een Excel-bestand die na het uitvoeren van een macro zichzelf opslaat onder een andere naam (gedefineerd in cel R5, cel Q5 bevat de huidige (oude) naam), en dan moet het oude bestand verplaatst worden. Nu weet ik dat je een bestand niet verplaatst kan worden als het geopend is, dus wordt er hiervoor het nieuwe Excel-bestand geopend die het oude bestand afsluit, het bestand verplaatst en dan het nieuwe bestand ook afsluit. Lastig uit te leggen maar ik hoop dat de code verklaart.
Oud bestand:
Code:
Sub DoRename()
Dim na
na = Range("Q7").Value & Range("R5").Value
MsgBox ("Klokregels zijn gereed gemaakt voor invoer in ***. Deze kunnen nu via het tussenbestand ingelezen worden. Deze sheet wordt nu afgesloten.")
ActiveWorkbook.SaveCopyAs Filename:=na & ".xls"
Workbooks.Open (na & ".xls")
End Sub
Code:
Private Sub Workbook_Open()
If Range("Q22").Value = False And Range("Q34").Value = False Then
Dim naamvoor
Dim naamna
naamvoor = Range("Q5").Value
naamna = Range("R5").Value
On Error Resume Next
Workbooks(naamvoor & ".xls").Close savechanges:=True
Name Range("Q7").Value & Range("Q5").Value & ".xls" As Range("R7").Value & Range("Q5").Value & ".xls"
Windows(naamna & ".xls").Activate
Sheets("Urenbriefje").Select
Range("R24").Select
Selection.Copy
Range("Q34").Select
ActiveSheet.Paste
ActiveWorkbook.Close savechanges:=False
Else
Sheets("Urenbriefje").Select
Range("E1").Select
End If
End Sub
Nu is het zo dat de code in het nieuwe bestand uitgevoerd wordt tot en met: Workbooks(naamvoor & ".xls").Close savechanges:=True
Hierna stopt de macro zonder foutmelding. Als ik de macro stap voor stap uitvoert, werkt hij wel volledig, maar dus niet bij het openen vanuit het oude bestand. Ik dacht dat het misschien aan de macrobeveiliging kon liggen, dus ik heb om dit te testen alle macro's toe laten staan. Helaas gaf dit ook geen resultaat.
Deze macro is getest op een Windows XP computer met Office 2010. De schijf waar het bestand verplaatst moet worden is een netwerkschijf waar ik volledige rechten heb.
Ik hoop dat iemand mij kan helpen.
Met vriendelijke groet,
Mark