Macro wordt niet goed uitgevoerd bij openen vanuit andere sheet.

Status
Niet open voor verdere reacties.

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:
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
Nieuw bestand (wat dus door het oude bestand geopend wordt):
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
 
Doe die 'On Error Resume Next' eens even weg...
...of plaats 'on error goto 0' net voor de instructie waar hij vastloopt.
 
Die 'On Error Resume Next' is er pas laat bijgekomen, daarvoor deed hij het ook al niet. Die is erbij gezet omdat het voor kan komen dat er geen andere sheet open is en er dus een error verschijnt. En hij voert 'Workbooks(naamvoor & ".xls").Close savechanges:=True' wel gewoon uit. Dat is hem helaas niet...
 
Ok, ik snap wel waarom die on error resume next zou kunnen staan maar als je deze errorhandler uitschakelt, dan weet je waarom de macro net op dat punt stopt ("Hierna stopt de macro zonder foutmelding.").
 
Tip:
Gebruik bij het tonen van code ook inspringpunten, dat bevorderd de leesbaarheid.
Ik neem aan je ze in je code wel gebruikt?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan