Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
768to772
768to772
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Variablen von einem Sub im anderen verwenden
08.06.2006 13:28:31
einem
Hallo,
ich habe Variablen die in meinem Modul mehrfach in verschiedenen Subs gebraucht werden. Da ich nicht in jedem Sub den Ablauf zum zuweisen der Werte ausführen will , muss ich sie irgendwie in einem Sub zuweisen (?) und dann da abrufen wo ich die Werte brauche (Teilweise ändern sich die Werte in einem Sub)
Kann mir jemand erklären wie ich das so hinbekomme, oder vielleicht einen anderen Weg aufzeigen der besser wäre?
Gruß Thorsten

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variablen von einem Sub im anderen verwenden
08.06.2006 13:32:59
einem
Hallo,
deklariere die Variable außerhalb einer Sub.
Die Deklarationen innerhalb der Subs musst du löschen.
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
AW: Variablen von einem Sub im anderen verwenden
08.06.2006 13:36:56
einem
Hallo u_,
Variablen hab ich wie folgt außerhalb Deklariert:
Private iRowDatBeg As Integer, iRowDatEnd As Integer, iRowWeek As Integer
Aber diesen Variablen fehlen noch die Werte, und diese muss ich in jedem Sub neu ermitteln. Das ist ja mein Problem, ich weis nicht wie ich den Variablen einen Wert zuweisen kann der in allen anderen Subs des Moduls auch zur verfügung steht, aber auch geändert werden kann während des ablaufs einzelner Subs.
Gruß Thorsten
Anzeige
AW: Variablen von einem Sub im anderen verwenden
08.06.2006 13:40:32
einem
Hallo,
Variablen hab ich wie folgt außerhalb Deklariert:
doch hoffentlich im gleichen Modul.
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)
AW: Variablen von einem Sub im anderen verwenden
08.06.2006 13:55:07
einem
Ja, im selben Modul.
Aber das Problem bleibt das selbe.
Lad doch mal die Mappe hoch. oT
08.06.2006 14:09:08
u_
AW: Lad doch mal die Mappe hoch. oT
08.06.2006 14:46:37
Thorsten
Ich habs jetzt so gemacht wie ich es eigentlich nicht wollte.
Die Variablen als Private außerhalb der Subs definiert und dann in einem Sub die Werte zugewiesen. Dieses Sub das die Werte zuweist rufe ich nun in jedem Sub auf in dem ich die Werte brauche.
Gruß Thorsten
AW: Variablen von einem Sub im anderen verwenden
08.06.2006 14:28:07
einem
Die Variablen iRowDatBeg, iRowDatEnd und iRowWeek brauche ich im Sub cmdOK_Click() und UserForm_Initialize() im Sub ZeilenAuslesen() weise ich diesen Variablen die Werte zu die auch in den anderen Subs gebraucht werden. iRowWeek ändert sicht allerdings im Sub cmdOK_Click()
Hier ist der Code (kann komischerweise nicht uploaden):
Option Explicit
'Durchlaufvariablen deklarieren
Private i As Integer, i2 As Integer, i3 As Integer
Sub ZeilenAuslesen()
'Zeilen auslesen
Dim iRowDatBeg As Integer, iRowDatEnd As Integer, iRowWeek As Integer
'unterhalb dieser Zeile Beginnen die Daten
iRowDatBeg = 3
'Ende der Daten suchen
iRowDatEnd = iRowDatBeg
Do While Cells(iRowDatEnd + 1, 1).Value "" And _
Cells(iRowDatEnd + 1, 1).Value "Woche"
iRowDatEnd = iRowDatEnd + 1
Loop
'String "Woche" suchen
iRowWeek = iRowDatEnd
Do Until Cells(iRowWeek, 1).Value = "Woche"
iRowWeek = iRowWeek + 1
Loop
UserForm_Initialize iRowDatBeg, iRowDatEnd, iRowWeek
End Sub

Private Sub cmdOK_Click()
If iRowWeek - iRowDatEnd < 2 Then
Rows(iRowDatEnd).Insert Shift:=xlDown
Range("A" & iRowDatEnd + 1 & ":AP" & iRowDatEnd + 1).Interior.ColorIndex = 0
Range("A" & iRowDatEnd + 1 & ":AP" & iRowDatEnd + 1).Borders.LineStyle = xlContinuous
i = 7
Do While Cells(iRowDatEnd, i).Interior.Pattern < 17 And i <= 41
i = i + 1
Loop
Cells(iRowDatEnd, i).Interior.Pattern = 17
iRowWeek = iRowWeek + 1
End If
End Sub


Private Sub UserForm_Initialize(iRowDatBeg As Integer, iRowDatEnd As Integer, iRowWeek As Integer)
MsgBox iRowDatEnd
Dim aCProjektNr() As String
'Zeilen auslesen HINWEIS: Als Private außerhalb des Subs Definiert
'Dim iRowDatBeg As Integer, iRowDatEnd As Integer, iRowWeek As Integer
'PROJEKT-NR#############################################################
'Projekt-Nr. als String in ein Array schreiben
For i = 0 To iRowDatEnd - iRowDatBeg - 1
ReDim Preserve aCProjektNr(i) As String
aCProjektNr(i) = Cells(i + 1 + iRowDatBeg, 2).Value
Next i
'neues TB anlegen und Array-Werte eintragen
Worksheets.Add After:=Worksheets(1)
For i = 0 To UBound(aCProjektNr)
Worksheets(2).Cells(i + 1, 1) = aCProjektNr(i)
Next i
'Projekt-Nr. Array mit hilfe der Excel Sortierfunktion über ein neues TB sortieren
Worksheets(2).Range("A" & UBound(aCProjektNr)).Sort Key1:=Range("A1"), _
Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
'Array Sortiert wieder einlesen
For i = 0 To UBound(aCProjektNr)
aCProjektNr(i) = Worksheets(2).Cells(i + 1, 1).Value
Next i
'Sortier-TB wieder löschen
Application.DisplayAlerts = False
Worksheets(2).Delete
Application.DisplayAlerts = True
'Dialog mit Projekt-Nr befüllen
For i = 0 To UBound(aCProjektNr)
Me.CProjektNr.AddItem (aCProjektNr(i))
Next i
'ENDE PROJEKT-NR########################################################
With Me
.cmdCancel.Cancel = True
.cmdOK.Default = True
End With
End Sub

Anzeige
AW: Variablen von einem Sub im anderen verwenden
08.06.2006 14:58:25
einem
Hallo,
DU HAST NICHTS VON EINER USERFORM GESCHRIEBEN, IN DER DU DIE VARIABLEN VERWENDEST! NUR VON EINEM MODUL!
Deklariere als Public.
Gruß
Geist ist geil!
(Dies ist ein allgemeines Statement und nicht an bestimmte Personen gerichtet.)

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige