Supportnet Computer
Planet of Tech

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?

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

Antwort 3 von StoneCold

Bitte um Hilfe!Ist wichtig!

Antwort 4 von xxx23

Unter VB (in VBA wirds gleich sein...)


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:

Dim a As String
a = "test"
MsgBox a, vbOKOnly, "testfenster"


Antwort 6 von xxx23

Näheres zur Variablendeklaration un den verschiedenen Typen findest du hier.

Antwort 7 von StoneCold

THX!!

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:


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?


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+1

statt
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:
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 = a

So 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

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!


Sub weiter_click()
Dim a As Integer
a = 1
a = a + 1
lblTage.Caption = a
End Sub


So 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.

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:

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

Guckst Du hier

Antwort 30 von StoneCold

DAANKE!!

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;)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: