Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten von einem Sub zum anderen Sub übergeben

Daten von einem Sub zum anderen Sub übergeben
einem
Guten Abend zusammen,
ich habe ein Sub was durch Button_1 startet. In dieser Prozedur werden Daten in ein Array abgelegt und bestimmte Berechnungen durchgeführt. Anschließend endet Sub_1, die Daten werden an Excel übergeben und Button_2 wird enabeld auf True gesetzt, da dieser Vorgang die Sub als Bedingung hat. Wie übergabe ich aber nun die Daten sprich das Array an das zweite Array ohne wieder die letzte Zeile bzw. das Array erneut aus Excel einzulsen. Da ist zwar eine Möglichkeit geht aber sicher anders.
Ich hoffe Ihr könnt mir helfen.
Gruß, Frank

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Daten von einem Sub zum anderen Sub übergeben
08.10.2009 22:35:41
einem
Hallo Frank,
ungetestet.
Public Array1() as Variant 'Allgemeines Modul ganz oben
Sub eins()
Redim Array1(0 to 1,0 to 0)
array1(0, 0)= 1
array1(1, 0)= 2
End Sub
Sub zwei()
Dim array2() as Variant, i as integer, j as integer
Redim array2(LBound(array1,1) to UBound(array1,1), LBound(array1,2) to UBound(array1,2)
For i = Lbound(array1, 1) to Ubound(array1,1)
For j = Lbound(array1, 2) to Ubound(array1,2)
array2(i, j) = array1(i, j)
Next
Next
End Sub
Gruß Gerd
die Zeile....
08.10.2009 22:51:01
Frank
...wird rot angezeigt...Hallo Gerd, danke erst einmal für deine Hilfe
Redim array2(LBound(array1,1) to UBound(array1,1), LBound(array1,2) to UBound(array1,2)
Ich verstehe jetzt nicht ganz wie damit auf Sub eins zurückgegriffen wird? Überhaupt müßte doch diese Thematik irgendwie allgemen jedem Mal auf die Füße fallen der programmiert, wenn man nicht alles in einem Modul in durchlaufen lassen möchte. Oder nehmen wir ein einfach Bsp.
In einem Modul werden alle Zeilen in Excel mit EntireRow ausgelesen. Sagen wir wir haben als Ergebnis
IntAnzahlZeilen= 100 nun rufe ich in diesem Modul ein anderes auf mit Call. Und in diesem neuen Modul benötige ich die Variable IntAnzahlZeilen. Wie funktioniert das?
Gruß, Frank
Anzeige
AW: Korrektur u. Rückfrage
08.10.2009 23:39:18
Gerd
Hallo Frank,
in dieser Codezeile fehlte ganz hinten noch eine weitere schließende Klammer (eben ungetestet).
Teste einfach mal mit dieser Ergänzung.
Mir ist jetzt nicht klar,
möchtest Du mit Datenfeldern arbeiten,
auf eine einfache Integer- oder Long-Variable (=100) zurückgreifen,
einen Range global deklarieren ?
Gruß Gerd
AW: Korrektur u. Rückfrage
09.10.2009 07:50:45
Frank
Hallo Gerd,
die Frage ist eher allgemeiner Natur. Ich möchte wissen wie ich Variablen bspw. Integer oder String-Variablen beim aufrufen einen anderen Prozedur übergebe. Ob das jetzt aus einem Array ist oder einfach nur einen Wert hat spielt dabei keine Rolle.
Sub Eins()
Dim LastRow As Long
Dim LastColumn  As Long
Dim Array_1() As Variant
With Worksheets(1)
LastRow = IIf(Len(.Cells(.Rows.Count, 9)), .Rows.Count, .Cells(.Rows.Count, 9).End(xlUp). _
Row) - 1
LastColumn = IIf(Len(.Cells(1, .Columns.Count)), .Columns.Count, .Cells(1, .Columns.Count). _
End(xlToLeft).Column)
End With
ReDim Array_1(LastRow, LastColumn)
'Array einlesen
For i = 1 To LastRow    'Bereich der Zeilenzählschleife zum Einlesen
For j = 1 To LastColumn
Array_1(i, j) = Worksheets(1).Cells(i + 1, j + 1 - 1)
Next j
Next i
Call Zwei
End Sub

Sub Zwei()
und hier möchte ich jetzt die eben eingelesenen Werte aus dem Array oder bspw. LastRow  _
verwenden?
Ich hoffe ich konnte mein Anliegen verdeutlichen.
Gruß, Frank.

Anzeige
AW: Korrektur u. Rückfrage
09.10.2009 13:42:11
Frank
.
JAA...
11.10.2009 21:22:37
Frank
...ich denke das hilft mir....Och versuch mal mein Glück.
Danke :-)

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige