Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel Makro benutzerdefinierte (TYPE) Variable übergeben





Frage

Hallo erst einmal an alle hier im Forum, ich habe ein Problem mit einem Excel Makro. Ich habe mit Type eine benutzerdefinierte Variablentyp deklariert. Z.B. Type Daten Feld1 as string Feld2 as integer end type Dann habe ich zwei variablen diese Typs deklariert. dim Var1 as Daten dim Var2 as Daten Ich möchte nun in einer Sub diese Daten mit Werten aus einer Exceltabelle füllen und dann in einem Formular anzeigen. Da ich aber von verschiedenen Sub's Daten in das Formular schreiben möchte, benötige ich eine SUB, welche einfach nur die Daten in das Formular schreibt. Wie kann ich die Daten von einer Sub an die andere übergeben. Beispiel sub lese Var1.feld1 ="Test" Var1.feld2= 5 schreibe var1 end sub sub schreibe (var2 as Daten) 'Hier möchte ich die Daten in einem Formular anzeigen" end sub Ich bekomme eine Fehlermeldung "Typen unverträglich" Was mache ich falsch, oder wo liegt mien Denkfehler. Dank im Vorraus, Joachim

Antwort 1 von coros

Hallo Joachim,

Du übergibst in Deinem Makro "lese" an das Makro "schreibe" die Variable "var1". Im Makro "schreibe" dekalrierst Du aber dann die Variable "var2". Dort muss VAriable "var1" deklaiert werden, also

sub schreibe (var1 as Daten)


Was ich allerdings nicht verstehe, warum Du die Variablen nicht mit "Publik" in einem Modul deklarierst. Damit hast Du dann überall in allen Makros usw. die Variable mit Ihrem Wert zur Verfügung.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von tiltappe

Hallo Oliver,
vielen Dank für deine schnelle Hilfe.
Es funktioniert so, wie du geschrieben hast. Ich hatte da wohl etwas falsch verstanden.
Vielleicht kannst du mir Noch folgendes erklären.
Wenn ich nun die Sub Schreibe von mehreren unterschiedlichen Sub's nutzen möchten und die zu übergebenden Variablen auch verschieden sind (Aber gleicher Typ. ( z.B VAR2, VAR3;VAR4) Kann ich die irgendwie direkt übergeben, oder muss ich diese immer erst in VAR1 kopieren?? Hintergrund meiner Frage: Ich möchte z.B. Werte in ein Formular schreiben und mit einer anderen fest belegten VAriable einen "Default Wert" reinschreiben.
Gruss, schöne Feiertage und nochmals Danke,
Joachim