Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1924to1928
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

Abgreifen einer öffentlichen Variable

Abgreifen einer öffentlichen Variable
12.04.2023 15:57:54
Katharina Gamer

Hallo Zusammen,

meine VBA Datei füllt per Button viele Zeilen mit einer Formel.
Für die Übersichtlichkeit wollte ich nun in einem Modul (Formeln) alle Formeln hinterlegen und schließlich im Modul des Tabellenblattes (Eingabeparameter) auf diese zugreifen. Ich habe die Formeln als String angelegt ( da er ja einfach das Feld auswählen und die Formeln dort hinein schreiben soll) und natürlich als Public deklariert. Aber trotz allem kann das Modul Eingabeparameter nicht auf die Formel zurück greifen. Der Code läuft ohne Fehler durch aber die Zelle bleibt leer, ohne Formel.

Beispielhaft steht im Modul Formeln:

Option Explicit
Public Formel1 As String

Sub Formeln()
Formel1="10+10"
End Sub


im Modul Eingabeparameter steht dann:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "A1" Then
Range("B2").Value = Formel1
End If
End Sub

Kann mir jemand sagen, an was das liegen kann?

Danke für eure Hilfe!!
Viele Grüße
Katharina

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

Betreff
Datum
Anwender
Anzeige
AW: Abgreifen einer öffentlichen Variable
12.04.2023 16:06:09
onur
Public Formel1 As String 
veranlasst nur das Bereitstellen der Variablen, aber das Befüllen erfolgt erst, wenn du "Sub Formeln()" auch AUSFÜHRST.
SO müsstest du es machen:
Public Const Formel1 = "=10+10"" 
Und später statt
Range("B2").Value = Formel1
das
Range("B2").Formula = Formel1
Aber so, wie du es machst, verursacht dein Change-Event auch noch eine Endlosschleife.


AW: Abgreifen einer öffentlichen Variable
25.04.2023 10:58:53
Katharina Gamer
Hallo Onur,

vielen lieben Dank für Deine Hilfe!!
Es ist so - ich schreibe nicht ewinfach 10+10 in die Zelle, da die Formel in der Praxis natürlich sehr viel komplizierter ist... Da die Zellen mit den Formlen öftermals überschrieben werden müssen, habe ich einen Reset Button eingeführt, der die Formel wieder herstellt. Daher die Definition der Formel im VBA.

Dein Vorschlag funktioniert prima. Allerdings habe ich noch einen Frage: Bei meinen Formeln handelt es sich um endlos lange Wenn-Dann-Formeln, sodass die Formel nicht in eine Zeile im VBA Editor passt. Nun lasse ich quasi die Formel aus mehreren definierten Strings zusammen setzen, also so:

Private Sub ()
Dim Formel1 As String 
Formel1 ="wenn(..."

Dim Formel2 As String 
Formel2 = "..."

Dim Formel As String 
Formel = Formel1 & Formel2
End Sub


Wenn ich es nun so mache wie du gesagt hast, dann habe ich in einem allgemeinen Modul stehen:
Public const Formel1 = "wenn(..."
Public Const Formel2 ="..."
Public Const Formel1 & Formel2

Allerdings bringt er mir einen Laufzeitfehler aufgrund der letzten Reihe.. gibt es eine Möglichkeit eine Public Const aus anderen Public Const bilden zu lassen? D.h. vereinfacht gesprochen:

Public Const A ="=A1+A2"
Public Const B ="+B1+B2"
Public Const Zusammen = A&B 'sodass ich das über Formula abrufen kann und schließlich in der entsprechenden Zelle "=A1+A2+B1+B2" steht?

Danke schonmal für die Hilfe!


Anzeige
AW: Abgreifen einer öffentlichen Variable
12.04.2023 16:10:21
onur
Ich verstehe aber auch nicht, warum du nicht gleich eine 20 in die Zelle schreibst, statt den Umweg über die Formel zu nehmen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige