Supportnet / Forum / Anwendungen(Java,C++...)
Variablen Bestimmen
Frage
Ich komme noch nicht so ganz dahinter wie man Variablen näher bestimmen kann oder wie man die beutzt.Kann mir das jemand erläutern??Bitte in VBA!
Antwort 1 von Huutsch
Also das habe ich jetzt auch nicht verstanden, was meinst Du mit "näher bestimmen"?
Meinst Du den Typ einer Variable oder was?
Meinst Du den Typ einer Variable oder was?
Antwort 2 von StoneCold
ehrlichgesagt verstehe ich allgemein Vriablen nicht.Kann mir vieleicht jemand ein beispiel für eine Variable geben??BItte aber nicht sowas Kompliziertes!Was ganz einfacheS!
Weil ich checke nix
Weil ich checke nix
Antwort 3 von StoneCold
Bitte um Hilfe!Ist wichtig!
Antwort 4 von xxx23
Unter VB (in VBA wirds gleich sein...)
Einfaches Beispiel:
Zuerst wird mit "Dim a As String" ein Speicherbereich für eine Variable des Typs String (normaler Text, Buchstaben) geschaffen. Der Platz wird also quasi im Speicher reserviert.
Danach wird der Variable a der Wert "test" zugeordnet. Wer auch immer jetzt auf diese Variable zugreift, bekommt mit ihr den Wert "test" geliefert.
In der letzten Zeile schliesslich wird eine MessageBox aufgerufen, die als Inhalt die Variable a besitzt - was in unserem Falle dem Wert "test" entspricht.
Dim (Variablenname) As (Variablentyp)
Einfaches Beispiel:
Dim a As String
a = "test"
MsgBox(a,"Testfenster",vbOKOnly)
Zuerst wird mit "Dim a As String" ein Speicherbereich für eine Variable des Typs String (normaler Text, Buchstaben) geschaffen. Der Platz wird also quasi im Speicher reserviert.
Danach wird der Variable a der Wert "test" zugeordnet. Wer auch immer jetzt auf diese Variable zugreift, bekommt mit ihr den Wert "test" geliefert.
In der letzten Zeile schliesslich wird eine MessageBox aufgerufen, die als Inhalt die Variable a besitzt - was in unserem Falle dem Wert "test" entspricht.
Antwort 5 von xxx23
Hab lange kein VB mehr benutzt...
Der richtige Code für mein Mini-Programm lautet:
Der richtige Code für mein Mini-Programm lautet:
Dim a As String
a = "test"
MsgBox a, vbOKOnly, "testfenster"
Antwort 6 von xxx23
Antwort 7 von StoneCold
THX!!
Langsam kapier ich auch Variablen!Danke für die Hilfe!
Langsam kapier ich auch Variablen!Danke für die Hilfe!
Antwort 8 von StoneCold
Ich hab das miniprogramm auf meine ansprüche angepasst!Aber ich verstehe nicht warum das net funzt.Ich will in einem label eine zufällige Zahl angezeigt bekommen!Ich ahbs erstmal mit 1 oder 2 probier aber er zeigt immer 1 an!
Private Sub Form_Load()
Dim Datum As Integer
Datum = 1 Or 2
lblTage.Caption = Datum
End Sub
Antwort 9 von Adik
Bei Zufallszahlen musst du mit dem Befehl rnd arbeiten...ich hab den Syntax jetzt leider nicht im Kopf aber ich glaube es ist:
bye
Christoph
Datum = Int(1 * Rnd) + 1
bye
Christoph
Antwort 10 von StoneCold
Jupp,es funzt thx!Jetzt brauch ich noch das wenn ich auf einen button klicken,das in einem label bei jedem klick eine Zahl weitergezählt wird!
Antwort 11 von xxx23
Erstelle ein Label (lbl) und einen Button (cmd).
Dim a As Integer
Private Sub cmd_click()
a = Int(1 * Rnd) + 1
lbl.Caption = a
End Sub
Antwort 12 von StoneCold
Gunzt net. Er zählt bis 1 und dann hört er auf!Ich kann klicken so oft ich will!
Antwort 13 von xxx23
Welchen Zahlenbereich möchtest du denn? 1-2?
Allgemein für 1-x:
Und für 0-x:
Int(2 * Rnd) + 1
Allgemein für 1-x:
Int(x * Rnd) + 1
Und für 0-x:
Int(x * Rnd)
Antwort 14 von StoneCold
Geht immer nur bis 1 !
Antwort 15 von Adik
Das versteh ich jetzt nicht...möchtest du, dass wenn man auf den Button klickt, das dann eine neue Zufallszahl gezogen wird oder möchtest du einfach nur fortlaufend hochzählen? 6...7..8..9 usw
Antwort 16 von StoneCold
fortlaufend hochzählen
Antwort 17 von Casvil
a=a+1statt
a = Int(1 * Rnd) + 1
das sollte dann gehen.
©as
Antwort 18 von xxx23
Fortlaufend hochzählen? Oben war doch von einer Zufallszahl die Rede...
Antwort 19 von StoneCold
Sub weiter_click()
a = a + 1
End Sub
Private Sub Datum()
Dim a As Integer
lblTage.Caption = a
End Sub
was ist daran Falsch??
Antwort 20 von Casvil
Du sprichst deine 'Sub weiter_click()' nich an.
Normalerweise(Ich kann nur C++) müsste das dann so aussehen:
In C/C++ würde es nur so funzen, ich kann mir nich vorstellen, das es hier anders ist. Die Funktion weiter_click muss ja erst ausgeführt werden. Es kann auch sein(da ich die Basic Syntax nich kenne) das es auch so auszusehen hat:
So Long
©as
Normalerweise(Ich kann nur C++) müsste das dann so aussehen:
lblTage.Caption= weiter_click()In C/C++ würde es nur so funzen, ich kann mir nich vorstellen, das es hier anders ist. Die Funktion weiter_click muss ja erst ausgeführt werden. Es kann auch sein(da ich die Basic Syntax nich kenne) das es auch so auszusehen hat:
weiter_clicke()
lblTage.Caption = aSo Long
©as
Antwort 21 von StoneCold
Das funzt leider auch net.Kann mir net irgendwer helfen?
Antwort 22 von semi
Mal unabhängig von VBA.
Variablen haben einen Gültigkeitsberech , in dem auf sie zugegriffen werden kann.
Wenn Du in einer Prozedur/Funktion eine Variable deklarierst, dann ist sie auch nur innerhalb dieser Prozedur/Funktion gültig.
Klartext: Die Variable a ist in der Prozedur weiter_click() nicht erreichbar.
Ich würde Dir empfehlen irgendein Einführungsskript zu VBA durchzugehen, bevor Du etwas konkretes programmierst. Mach Dich mit den grundlegenden Konstrukten und der Syntax der Sprache vertraut, dann kommst Du schneller zum Ziel.
Auf der folgenden Seite findest Du paar Einführungstutorials zum Thema VBA.
http://www.dokuwelt.de/dokuweb-themen.php3?themenID=94&kategorieID=1 oder http://www.dokuwelt.de/dokuweb-themen.php3?themenID=13&kategorieID=1
Ansonsten mal "VBA Lernen", "VBA Grundlagen", "VBA Einführung" durch google jagen. Versuche auch http://www.vivisimo.com. Es ist eine ziemlich gute Suchmaschine, die die Suchergebnisse kategorisiert.
Suche auch hier im Forum. Bestimmt hat schon jemand paar gute Links zu VBA genannt.
Gruß,
Michael
Variablen haben einen Gültigkeitsberech , in dem auf sie zugegriffen werden kann.
Wenn Du in einer Prozedur/Funktion eine Variable deklarierst, dann ist sie auch nur innerhalb dieser Prozedur/Funktion gültig.
Klartext: Die Variable a ist in der Prozedur weiter_click() nicht erreichbar.
Ich würde Dir empfehlen irgendein Einführungsskript zu VBA durchzugehen, bevor Du etwas konkretes programmierst. Mach Dich mit den grundlegenden Konstrukten und der Syntax der Sprache vertraut, dann kommst Du schneller zum Ziel.
Auf der folgenden Seite findest Du paar Einführungstutorials zum Thema VBA.
http://www.dokuwelt.de/dokuweb-themen.php3?themenID=94&kategorieID=1 oder http://www.dokuwelt.de/dokuweb-themen.php3?themenID=13&kategorieID=1
Ansonsten mal "VBA Lernen", "VBA Grundlagen", "VBA Einführung" durch google jagen. Versuche auch http://www.vivisimo.com. Es ist eine ziemlich gute Suchmaschine, die die Suchergebnisse kategorisiert.
Suche auch hier im Forum. Bestimmt hat schon jemand paar gute Links zu VBA genannt.
Gruß,
Michael
Antwort 23 von xxx23
Sub weiter_click()
a = a + 1
End Sub
Private Sub Datum()
Dim a As Integer
lblTage.Caption = a
End Sub
Wieso zwei Funktionen? Eine reicht doch, dann hast du auch das Problem der Variablengültigkeit nicht.
Dim a As Integer
Sub weiter_click()
a = a + 1
lblTage.Caption = a
End Sub
Antwort 24 von StoneCold
Auch das mit der einen Funktion funktioniert nicht!
So hab ich es jetzt.Jetzt komm ich zumindest bist 2 !
Sub weiter_click()
Dim a As Integer
a = 1
a = a + 1
lblTage.Caption = a
End SubSo hab ich es jetzt.Jetzt komm ich zumindest bist 2 !
Antwort 25 von Casvil
kein wunder, du rufst ja immer wieder dein a=1 auf.
am besten du nimmst dein a und deklarierst es global.
ich weiss nich, ob das mit der syntax stimmt. Aber dein Code kann nicht funzen, da IMMER beim Funktionsaufruf a wieder auf eins gesetzt wird. Das heisst du kannst in deiner funktion nur auf 2 kommen maximal. Ich würd das a ausserhalb der Funktion definieren und initialisieren. Dann kannst du den Wert(Die variable an die Funktion übergeben.)
©as
Oder lerne C++ da kann ich dir mit Sicherheit helfen, dann wäre deine Frage schon lange erledigt;)
am besten du nimmst dein a und deklarierst es global.
Dim a As Integer
a = 1
Sub weiter_click()
a = a + 1
lblTage.Caption = a
End Sub
ich weiss nich, ob das mit der syntax stimmt. Aber dein Code kann nicht funzen, da IMMER beim Funktionsaufruf a wieder auf eins gesetzt wird. Das heisst du kannst in deiner funktion nur auf 2 kommen maximal. Ich würd das a ausserhalb der Funktion definieren und initialisieren. Dann kannst du den Wert(Die variable an die Funktion übergeben.)
©as
Oder lerne C++ da kann ich dir mit Sicherheit helfen, dann wäre deine Frage schon lange erledigt;)
Antwort 26 von xxx23
Logisch, denn bei jedem Klick setzt du a zuerst auf 1, danach wird die Variable um eins erhöht und ausgegeben.
Richtig wäre:
Richtig wäre:
Dim a As Integer
Private Sub weiter_click()
a = a + 1
lbltage.Caption = a
End Sub
Antwort 27 von StoneCold
Wie kann ich eine Variable Global deklarieren??
Antwort 28 von StoneCold
Bitte,ich brauch das!
Antwort 29 von semi
Antwort 30 von StoneCold
DAANKE!!
Ich bedanke mich recht herzlich bei dir das dieses Problem endlich gelöst ist. Danke!
Ich bedanke mich recht herzlich bei dir das dieses Problem endlich gelöst ist. Danke!
Antwort 31 von StoneCold
Jetzt funzt es aber ich komme bis zum nächsten Monat bis zum 1. Tag.Dann zählt er net mehr
Antwort 32 von xxx23
Codebeispiel?
Antwort 33 von Casvil
Du must eine if else anweisung einbauen. wenn monat alt tage gleich 31 dann monat neu tage=1 und monat +1
©as
Sorry hab nur lust gehabt das im Pseudocode zu schreiben;)
©as
Sorry hab nur lust gehabt das im Pseudocode zu schreiben;)

