Hej, hoppas ni kan hjälpa mig med ett litet problem.
Försöker att överföra information mellan två Excel filer för att hålla ner filstorleken på användarens fil, lägga det mesta av makrot på annan plats.
Det färdiga programmet kommer att innehålla 25000+ rader kod och ett 70 tal underprogram.
Fått det att funka om Function används men då måste rätt parameter vara med och med 70 tal underprogram blir detta besvärligt.
Vill helst använda Sub och att alla parametrar/argument följer med mella de olika filerna, som det är nu blir det inte så.
Sub Slave, ingen data följer med på något håll men Dim blir rätt
Sub SlaveE, data följer med från master till slave men inte tillbaka
Function Slavef, funkar men rätt parametrar måste hela tiden följa med...
Vad gör jag för fel?
 
Kod i Master.xlsm
 
Public ZOP, ZST As Integer
Option Explicit
Public WorkbookName As String
Public MacroName As String
Public pris() As Integer 'Funkar med Function
Public Sub CallAnotherMacroSub() '(ZOP, ZST)  ' As Integer)
    WorkbookName = "Slave.xlsm"
    MacroName = "Slave"
    
    ZOP = 1
    ZST = 2
    
    Application.Run "'" & WorkbookName & "'!Slave", ZOP, ZST 'Data med p? enah?llet men inte tilbaka
    
    'Application.Run "'" & WorkbookName & "'!Slave"
    
    ZOP = ZOP
    ZST = ZST
    
    
End Sub
Public Sub CallAnotherMacroFunc()
    WorkbookName = "Slave.xlsm"
    MacroName = "Slave"
    
    ZOP = 1
    ZST = 2
    
    'Funkar med Function
    pris = Application.Run("'" & WorkbookName & "'!Slavef", ZOP, ZST)
    ZOP = pris(0)
    ZST = pris(1)
    
End Sub
 
 
Kod i Slave.xlsm
 
Public ZOP, ZST As Integer
Option Explicit
Public ut(1) As Integer
Sub Slave(ZOP As Integer, ZST As Integer)
  
    ZOP = ZOP + 2
    ZST = ZST + 3
    
    'ZOP ZOP
    'ZST ZST
End Sub
 
Sub SlaveE(ZOP As Integer, ZST As Integer)
  
    ZOP = ZOP + 2
    ZST = ZST + 3
    
    'ZOP ZOP
    'ZST ZST
End Sub
 
Function Slavef(ZOP, ZST)
    'Dim ut(1) As Integer
    
    ut(0) = ZOP + 2
    ut(1) = ZST + 3
    Slavef = ut
    
End Function