Registriert seit: 05.11.2016
Version(en): 2010
Hallo lieber Excel-Gemeinde,
Ich habe ein Problem, das schon oft diskutiert wurde, leider komme ich aber nicht weiter.
Das Problem dreht sich meiner Ansicht nach um die Deklaration der Variablen und die Übergabe in die jeweiligen Makros eines Projektes.
Zum Problem:
In Makro1 werden die Variablen zeile und spalte ermittelt.
In Makro2 werden aus den Variablen zeile und spalte die Variablen ort und koord ermittelt.
In Makro3 werden diese Variablen verarbeitet und in einer Userform dargestellt.
Im Makro4 werden die Variablen zeile und spalte erneut benötigt.
Wie bekomme ich die variablen zeile und spalte in alle Makros des Projektes?
Wer weiß Rat?
Danke
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo,
so:
Code:
Option Explicit
Dim intZeile As Integer
Dim intSpalte As Integer
Sub DeinMakro1()
' Inhalte
End Sub
Sub DeinMakro2()
'inhalte
End Sub
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter,
der Misserfolg ist ein Waisenkind
Richard Cobden
Registriert seit: 05.11.2016
Version(en): 2010
Danke Klaus-Dieter,
Ich werde Deine Lösung ausprobieren.
Wie müsste ich vorgehen, wenn die sich dieMakros in verschiedenen
Modulen befinden?
00202
Nicht registrierter Gast
Hallo, :19:
schau dir hier mal die
Lebensdauer und
Gültigkeit von
Variablen an: :21:
Variable - Public...
Folgende(r) 1 Nutzer sagt Danke an Gast für diesen Beitrag:1 Nutzer sagt Danke an Gast für diesen Beitrag 28
• tmessers
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
wenn Deine Makros alle in einem Modul stehen, passt das. Ein Projekt kann jedoch aus mehreren Modulen bestehen - dazu zählen auch Blätter, DieseArbeitsmappe usw., - und um die Variablen auch modulübergreifend oder eben im gesamten Projekt bereitzustellen solltest Du Public nehmen statt Dim.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.04.2014
Version(en): Office 2003 - Office 2007 - Office 365
Hallo,
kurz bevor ich einst einmal Excel aufgegeben habe habe ich immer ein Modul Namens Variablen eingesetzt. Damit brauche ich diese nicht mehrfach zu Dimensionieren, kann immer auf diese zugreifen:
Zitat:Public Schalter As Boolean
Public i As Integer
Public Zeile As Integer
Public AnzahlZ As Integer
Public Loletzte As Long
Public Neuer_Name As String
Public eingelesen() As String
Public Passwort As String
Public Passwort2 As String
Public Passwort3 As String
Public Benutzername As String
Public bprop(25, 2) As Variant
Public bprop2(25) As Variant
Public Zeichen As Variant
Public zufall As Variant
Hier ist es egal, ob ich von einem Tabellenblatt, oder von einem Modul zugreife.
Gruß
Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Folgende(r) 1 Nutzer sagt Danke an marose67 für diesen Beitrag:1 Nutzer sagt Danke an marose67 für diesen Beitrag 28
• tmessers
Registriert seit: 29.09.2015
Version(en): 2030,5
18.01.2020, 13:23
(Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2020, 13:23 von snb.)
Integriere die 4 Makros in ein einziges Makro.
Die Trennung kreiert nur ein überflüssiges Problem.
Registriert seit: 05.11.2016
Version(en): 2010
Danke für Eure Antworten.
Für die kleinen Projekte nehme ich Dim, für andere das Variablen deklariende Modul.
Wenn ich die Public-Variante nehme, muss ich dann beim Call des Moduls, die Varablen mit angeben,
ich meine z.B. so
Call Modul (ziele, spalte) ?
00202
Nicht registrierter Gast
(18.01.2020, 23:25)tmessers schrieb: Wenn ich die Public-Variante nehme, muss ich dann beim Call des Moduls, die Varablen mit angeben,
ich meine z.B. so
Call Modul (ziele, spalte) ?
Hallo, :19:
nein. Allerdings ist
meiner Meinung nach "
Public" die
unsaubere, bequeme Variante. Das nutze ich im Forum, oder bei
kleinen Projekten auch. In
größeren Projekten allerdings
nicht, denn du hast keine Kontrolle über die Variable. Da hat sich schnell ein Fehler eingeschlichen und ruck zuck hat die Variable einen Wert, den du nicht möchtest.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
19.01.2020, 09:26
(Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2020, 10:58 von schauan.)
Hallöchen,
So was eher nicht: Call Modul (ziele, spalte)
Eher Call MeinMakro (Zeile, Spalte)
oder Call MeinModul,MeinMakro (Zeile, Spalte)
(Falls es den gleichen Makronamen in mehreren Modulen gibt, ist aber auch nicht prickelnd ...)
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)