onnokramer
Gebruiker
- Lid geworden
- 2 feb 2011
- Berichten
- 12
Hallo,
Als ik een macro opvraag vanuit een andere bestand (PE_dp_hand v1.15.xlsm) krijg ik een foutmelding:
Fout 9 tijdens uitvoering, het subscript valt buiten het bereik.
Blijkbaar loopt hij hier op vast "Sheets("Calc").Activate"
Maar het vreemde is dat deze (PE_dp_hand v1.15.xlsm) los wel het goed doet?
Kan iemand mij helpen?
bedankt
*mod edit*
Beste onnokramer,
Ik heb de code even in code blokken gezet. Dit kunt u zelf doen voortaan door de code te selecteren en dan in de optiebalk op het hekje te drukken
Als ik een macro opvraag vanuit een andere bestand (PE_dp_hand v1.15.xlsm) krijg ik een foutmelding:
Fout 9 tijdens uitvoering, het subscript valt buiten het bereik.
Blijkbaar loopt hij hier op vast "Sheets("Calc").Activate"
Maar het vreemde is dat deze (PE_dp_hand v1.15.xlsm) los wel het goed doet?
Kan iemand mij helpen?
bedankt
Code:
Sub Menu()
' --------------------------------------------------------------------------------
' | Initialisatie.
' --------------------------------------------------------------------------------
' Application.DisplayAlerts = False ' Meldingen (fouten bijv) uit.
curpath = ThisWorkbook.Path 'Huidige directory.
Dim MenuFilename1 As String 'Bestandsnaamaam van bestand waar de resultateh naar moeten worden weggeschreven.
Dim MenuFilename2 As String 'Bestandsnaamaam van bestand waar de resultateh naar moeten worden weggeschreven.
Dim MenuFilename3 As String 'Bestandsnaamaam van bestand waar de resultateh naar moeten worden weggeschreven.
Dim MenuFilenameFull1 As String 'Idem met path.
Dim MenuFilenameFull2 As String 'Idem met path.
Dim MenuFilenameFull3 As String 'Idem met path.
Sheets("Menu").Activate
MenuFilename1 = Range("MenuFilename1").Value ' Lees de bestandsnaam in waarin de resulaten moeten worden weggeschreven.
MenuFilename2 = Range("MenuFilename2").Value ' Lees de bestandsnaam in waarin de resulaten moeten worden weggeschreven.
MenuFilename3 = Range("MenuFilename3").Value ' Lees de bestandsnaam in waarin de resulaten moeten worden weggeschreven.
MenuFilenameFull1 = curpath & "" & MenuFilename1
MenuFilenameFull2 = curpath & "" & MenuFilename2
MenuFilenameFull3 = curpath & "" & MenuFilename3
Application.Run ("'" & MenuFilenameFull1 & "'!test1")
Application.Run ("'" & MenuFilenameFull2 & "'!test2")
Application.Run ("'" & MenuFilenameFull3 & "'!Results_Data_dp_Vis_Zeef")
Workbooks(MenuFilename1).Close
Workbooks(MenuFilename2).Close
Workbooks(MenuFilename3).Close
' Application.Run ("'" & workbookname & "'!macroname")
' Application.Run ("'Analytics macro S17.xlsm'!getdata")
' Workbooks(Filename).Close
' Workbooks.Open (FilenameFull) ' Open resultaten bestand.
' Application.Run "Results_Data_dp_Vis_Zeef"
' Workbooks(Filename).Close
End Sub
Sub Results_Data_dp_vis_zeef()
' --------------------------------------------------------------------------------
' | Initialisatie.
' --------------------------------------------------------------------------------
Application.Calculation = xlAutomatic ' Automatisch rekenen aan.
Application.DisplayAlerts = False ' Meldingen (fouten bijv) uit.
Dim i, j, x, y As Long
Dim Array1() As Variant
curpath = ThisWorkbook.Path 'Huidige directory.
Dim Filename As String 'Bestandsnaamaam van bestand waar de resultateh naar moeten worden weggeschreven.
Dim FilenameFull As String 'Idem met path.
' Definieren van je matrix.
ReDim Array1(14, 16) '14 = aantal dagen, 2x8=16 aantal rijen, aantal te onthouden resultaten.
' --------------------------------------------------------------------------------
' | Initieren data resultaten bestand.
' --------------------------------------------------------------------------------
Sheets("Calc").Activate
Filename = Range("Filename").Value ' Lees de bestandsnaam in waarin de resulaten moeten worden weggeschreven.
FilenameFull = curpath & "" & Filename
y = Range("start").Row
x = Range("start").Column
For i = 1 To 14 'y
For j = 1 To 16 'x
Array1(i, j) = Cells(y + i - 1, x + j - 1)
Next j
Next i
Workbooks.Open (FilenameFull) ' Open resultaten bestand.
y = Range("start_dp_vis_zeef").Row
x = Range("start_dp_vis_zeef").Column
Sheets("data").Activate
For i = 1 To 14
For j = 1 To 16
Cells(i - 1 + y, x + j - 1) = Array1(i, j)
Next j
Next i
ActiveWorkbook.SaveAs Filename:=(FilenameFull) 'Bestand met resultaat opslaan.
Workbooks(Filename).Close
End Sub
*mod edit*
Beste onnokramer,
Ik heb de code even in code blokken gezet. Dit kunt u zelf doen voortaan door de code te selecteren en dan in de optiebalk op het hekje te drukken
Laatst bewerkt door een moderator: