Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Globale Variable dauerhaft speichern
#1
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


Angehängte Dateien Thumbnail(s)
           
Antworten Top
#2
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
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Antworten Top
#3
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.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#4
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


Angehängte Dateien Thumbnail(s)
           
Antworten Top
#5
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.
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Antworten Top
#6
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste