Array übergeben
16.11.2017 16:03:36
Jens
ich habe folgendes Problem, welches ich nicht gelöst bekomme:
Im Sub "Dateien_Erstellen()" wird die Prozedur "BossIDs_Einlesen" aufgerufen, diese wird durchlaufen und am Ende steht ein Array ("MatrixListeBossID")das zurück an "Dateinen_Erstellen()" geliefert werden soll und von dort gleich (zusammen mit einer weiteren Variablen "ZaehlerFam") als Input weitergegeben werden soll an die beiden Prozeduren "DatenEinkauf_Einlesen" und "DatenLager_Einlesen" ...
Wenn ich alles in einem Rutsch in einem Sub durchprogrammiere, klappt es, da das Array bzw. die weitere Variable alle im Sub vorliegen. Da der Programmcode allerdings ewig lang ist, möchte ich zur besseren Übersicht splitten und muss das Array bzw. die Variable übergeben, was so nicht klappt.
Bisher habe ich (verkürzt und vereinfacht):
Public Sub PortfolioDateien_Erstellen()
Dim pfad As String
Dim NeueDatei As String
pfad = ThisWorkbook.Path & "\"
NeueDatei = "Daten_201709.xlsx"
Application.Workbooks.Open pfad & NeueDatei
Sheets("Rohdaten").Select
Call BossIDs_Einlesen
DatenEinkauf_Einlesen MatrixListeBossID(), ZaehlerFam
End Sub
Public Sub BossIDs_Einlesen()
Dim i As Integer
Dim j As Integer
Dim ZeileDaten As Integer
Dim strZeileBoss As String
Dim ZaehlerFam As Integer
Dim MatrixListeBossID() As Variant
ReDim strLetters(1 To 1)
ZeileDaten = FreeFile
Open "G:\MeineDaten\bossIDs.txt" For Input As ZeileDaten
Do While Not EOF(ZeileDaten)
ZaehlerFam = ZaehlerFam + 1
Line Input #ZeileDaten, strZeileBoss
ReDim Preserve strLetters(1 To ZaehlerFam)
strLetters(ZaehlerFam) = Split(strZeileBoss, ";")
Loop
Close ZeileDaten
ReDim MatrixListeBossID(1 To ZaehlerFam, 0 To 4) As Variant
For i = 1 To ZaehlerFam
For j = 0 To 4
If i = 1 Then
MatrixListeBossID(i, j) = strLetters(i)(j)
Else
MatrixListeBossID(i, j) = CDbl(strLetters(i)(j))
End If
Next j
Next i
PortfolioDateien_Erstellen MatrixListeBossID(), ZaehlerFam
End Sub
Public Sub DatenEinkauf_Einlesen(ByRef MatrixListeBossID() As Variant, ByRef ZaehlerFam As _
Integer)
End Sub