Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Nach dem "call-Befehl" ist variable 0





Frage

Hallo Zusammen Habe folgendes Problem: Ich habe 2 subs - schaut dann wie folgt aus public sub sub1() dim zahl as integer ´ jetzt bekomme ich durch meinen Programmcode ´ einen Zahl für meine Variable "zahl" ´ sub1 ist zu ende und jetzt möchte ich mit sub2 ´ fortfahren call sub2 end sub ´ in Sub2 möchte ich eine Schleife einbinden die ´ von 1 bis zahl zählt public sub sub2() dim zahl as integer for i = 1 to zahl ..... .... end Sub So jetzt das Problem. Der sub2 kann mit der variable "zahl" nichts mehr anfangen bzw sie hat immer den Wert 0. Was mache ich falsch??? Danke schon mal für eure Antworten gez Hardwarehacker

Antwort 1 von Risatara2

Hallole
Ach ja, jetzt weiß ichs wieder.. Deklariere "Dim zahl as integer" mal vor dem ersten Sub, und nimm es aus der zweiten sub raus. Könnte uU dein Problem lösen.
Risatara

Antwort 2 von Event

Hallo
..oder übergib die Zahl an die Procedur beim Aufruf:

Public Sub sub1()
Dim Zahl As Integer
Zahl = 10
 sub2 (Zahl)
End Sub

Public Sub sub2(ByVal Zahl As Integer)
Debug.Print Zahl
End Sub


Gruß

Antwort 3 von coros

Hi Hardwarehacker,

dekalriere die Variable "Zahl" nicht innerhalb Deiner Sub Routine, sondern ganz zu Anfan mit der Anweisung

Public Zahl As Integer


Somit kannst Du egal von wo auf die Variable "Zahl" zugreifen. EIne andere Variante ist, die Variable beim Aufruf der 2. Sub Anweisung mit zu übergeben. In Deinem Fall würde das wie folgt lauten:

public sub sub1() 
dim zahl as integer 
´ jetzt bekomme ich durch meinen Programmcode 
´ einen Zahl für meine Variable "zahl" 

´ sub1 ist zu ende und jetzt möchte ich mit sub2 
´ fortfahren 
sub2 Zahl
end sub 

´ in Sub2 möchte ich eine Schleife einbinden die 
´ von 1 bis zahl zählt 

public sub sub2(Zahl As Integer) 
dim zahl as integer 
for i = 1 to zahl 
..... 
.... 
end Sub 


Ich habe die Beiden Bereiche, die es betrifft, unterstrichen.

Ich hoffe, Du kommst klar. Bei Fragen melde Dich.


MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von coros

Hi ich noch mal,

ich hätte vielleicht den Beitrag von @Event besser lesen sollen, da war meine 2. Variante ja bereits erklärt, sorry.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

Antwort 5 von Hardwarehacker

Herzlichen Dank für eure schnellen Antworten !!!

Habs auch schon ausprobiert und funktioniert super!!!

Danke

gez
Hardwarehacker