Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1424to1428
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
Inhaltsverzeichnis

Globale Variable bei "Cells" anwenden

Globale Variable bei "Cells" anwenden
09.05.2015 00:00:30
Jubeldibub

Hallo!
Ich bin ein blutiger Anfänger in VBA, entschuldigt also bitte im Voraus etwaige "doofe" Fragen.
Was habe ich vor: Ich würde gerne eine Tabelle mittels drei Buttons verändern können.
1. Button: Füllt bei jedem Klick Zellen untereinander (angefangen bei der 5. Zeile) mit "Ok"
2. Button: Füllt bei jedem Klick dieselben fortlaufenden Zellen mit "x" (überschreibt nicht das OK, sondern setzt dann das X in die nächste Zeile)
3. Button: Löscht alle bisher eingetragenen "Ok" und "x" und sorgt dafür, dass bei einem weiteren Klick auf Button 1 oder 2 wieder in Zeile 5 begonnen wird die OK oder X einzutragen.
Das mal in VBA, so wie ich es bisher versucht habe:


Global i As Long
Sub SchaltflächeErfolg_Klicken()
i = i + 1
Cells(4 + i, 2) = "ok"
End Sub
Sub SchaltflächeMisserfolg_Klicken()
i = i + 1
Cells(4 + i, 2) = "x"
End Sub
Sub SchaltflächeReset_Klicken()
i = 0
Range("B5:B200").ClearContents
End Sub 

Leider funktioniert das nicht so ganz, wie ich es will. Die Variable i (mit der ich steuern will, welche Zellen als nächstes gefüllt werden) wird irgendwie nicht richtig von allen drei Buttons angesprochen. Zwar erscheint beim Klick auf Button 1 bzw. 2 (SchaltflächeErfolg, SchaltflächeMisserfolg) in Cell(5,2) das "Ok" oder "x", aber wenn ich den Button noch mal klicke, wird nicht Zeile 6 (7, 8, 9...) befüllt, obwohl ich eben das mit meiner Steigerung von i erreichen wollte. Vielleicht könnt ihr mich ja helfen. Wenn noch unklar ist, was ich eigentlich erreichen will, sagt das einfach. Ich versuche es dann noch mal zu erklären.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Globale Variable bei "Cells" anwenden
09.05.2015 07:07:26
Werner
Hallo, (ein Name wäre schön gewesen)
meinst du so?
Option Explicit
Sub SchaltflächeErfolg_Klicken()
Dim loLetzte As Long
loLetzte = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row + 1
If loLetzte < 5 Then loLetzte = 5
Cells(loLetzte, 2) = "ok"
End Sub
Sub SchaltflächeMisserfolg_Klicken()
Dim loLetzte As Long
loLetzte = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row + 1
If loLetzte < 5 Then loLetzte = 5
Cells(loLetzte, 2) = "x"
End Sub
Sub SchaltflächeReset_Klicken()
Dim loLetzte As Long
loLetzte = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row
ThisWorkbook.Worksheets(1).Range("B5:B" & loLetzte).ClearContents
End Sub
Gruß Werner

Anzeige
AW: Globale Variable bei "Cells" anwenden
09.05.2015 09:05:51
Jubeldibub
Hallo Werner, hallo CrazyTom,
ich bin echt verwirrt. Die Lösung von Tom ist doch genau die Umsetzung, die ich auch versucht habe - und in dessen Mappe funktioniert es oO
@Werner: Ich wusste gar nicht, dass wenn man dreimal die gleiche Dim-Variable innerhalb drei verschiedener Subs vergibt, dass diese dann auch "dieselbe" wird (also von allen drei Subs dieselbe Variable genutzt wird).
Oh - mein - Gott... Ich habe meinen Fehler gefunden. Das "Global i As Long" war bei mir im Modul einfach nicht ganz oben, sondern irgendwo zwischen (nicht in, aber zwischen) anderer Subs (es gibt noch mehr als die drei hier von mir aufgeführten). In dem Fall scheint er die Variable dann nicht wirklich global zu nutzen, aber zumindest gilt sie auch dann innerhalb der einzelnen Subs als definiert. Nun habe ich das Global nach oben gesetzt und schon funktioniert alles einwandfrei.
Gut zu wissen *kopfklatsch* Vielen Dank für eure Hilfe!

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige