Clever-Excel-Forum

Normale Version: VBA Globale Variable dauerhaft speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hey Leute ich habe mal eine Frage.

Ich bin relativ unerfahren in VBA, besonders was Variablen angeht.

Mein Ziel ist es anhand des Integers x zu ermittel wie viele Zeilen in der Tabelle erzeugt wurden (X Erzeugt in Anhang 1).
Falls Zeilen durch "Verladung Material" oder "Zeile neu" hinzugefügt werden (siehe Anhang 3), soll der Integer um die jeweilige Anzahl der neu hinzugefügten Zeilen addiert werden (siehe Anhang 2).
Bei "Zeile neu" wird eine neue Zeile erzeugt und x um eins hochgestuft (siehe Anhang 2).
Jedoch wird der Wert nicht gespeichtert und, falls eine weitere Zeile erzeugt wird steht in der MsgBox nicht 2, sondern 1.
Wie kann man also den Wert von X ab Öffnen der Exceltabelle dauerhaft speichern?

Noch zwei Fragen:
Wie kann man mit x bei dem Befehl Rows arbeiten? (So funktioniert das auf jeden Fall nicht: [Rows("18:18"+x).select] und in die nächste Zeile dann [Selection.Delete Shift:=xlUp])
Kann man auch mit x arbeiten, wenn die neu erzeugten Zeilen im wechsel gefärbt werden sollen? Heißt, die ungeraden Reihen sollen dann in grau gefärbt werden und die geraden Reihen sollen farblos sein.

Ich freue mich auf Ihre Rückmeldung! Falls wichtige Informationen fehlen, werde ich diese natürlich schnellstmöglich nachreichen.
Vielen Dank für Ihre Mühen im Voraus und bleiben Sie gesund.

MFG

Nils
Hi,

1. eine globale Variable musst du in einem Modul definieren, also "Modul1", "Modul2", .... Dann kannst du in jedem anderen Modul, einschließlich der Tabellenmodule darauf zugreifen. Umgekehrt geht das nicht.

2. Um ganz eng an deiner Fragestellung zu bleiben:
Code:
Rows((18 + x) & ":" & (18 + x)).Select

3. Das machst du am besten über eine bedingte Formatierung, vgl. hier: Link
Hallo Nils,

wenn du dich ernsthaft mit VBA beschäftigen möchtest, solltest du als erstes die Select-Anweisung ganz schnell vergessen. Die ist so überflüssig wie ein Kropf. Die letzte gefüllte Zeile kann man per VBA abfragen, falls das dein Plan ist.
Hey Leute, vielen Dank für eure Rückmeldung! Das mit den Farben habe ich sogar hinbekommen :19:
Wie ich bemerkte, habe ich mich viel zu sehr darauf fixiert das Problem mit X zu lösen  :16:
Ja, ich habe auch gemerkt, dass ich starken Nachholbedarf bei VBA Grundlagen habe. Bisher konnte ich viele Kleinigkeiten schnell lösen, aber ich bin jetzt doch nochmals auf eure Hilfe angewiesen.
Ich bin endlich so weit, dass mir schon einmal keine Fehlermeldung angezeigt wird, jedoch gibt die msgbox mir keinen Wert aus. Deshalb die Frage kann man das so machen wie im Anhang zu sehen oder bin ich ganz und gar auf dem falschen Dampfer?
Kurze Info noch. Die VBA Befehle geschehen im Montagebegleitschein. Die Tabelle, in der ich Eintragungen zu evtl. neuen Artikeln vornehme geschehen im Zwischenspeicher (siehe Excel 1)
Danke schon einmal für eure Hilfe.

LG Nils
Hallo Nils,

du wirst wohl nicht um eine kleine Beispieldatei mit ein paar fiktiven Daten umhinkommen. Zeige darin am besten auf, wo du was hinhaben möchtest (Tabellenblatt, Zeile, Spalte), eventuell ergänzt mit manuellen Kommentaren und/oder Zeichnungsobjekten, die dir Excel zur Verfügung stellt (Pfeile, Formen, Legenden, Callouts usw.). Mit Bildern (Screenshots oder Teilen davon) kommst du hier meistens nicht weit, weil wohl nachvollziehbar ist, dass Helfer Beispieldateien nicht selber erstellen.

Anhand deiner Beschreibungen und der Teilansichten deines VBA-Codes kann ich nicht nachvollziehen, was du möchtest.
Hallöchen,

Du verwendest eine Variable als auszugebende Meldung. Vermutlich steht in der Variable noch nix drin. Public … zur Deklaration von Variablen verwendet man außerhalb der Makros, möglichst auch mit einem passenden Typ, im Prinzip:

Option Explicit
Public MeineVariable As String

Sub Makro1()
End Sub