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

Variable händisch in Zelle schreiben

Variable händisch in Zelle schreiben
03.12.2016 12:33:43
Barbara

Hallo
kann man eine Variable, die in einem Makro definiert wurde, in einer Formal im Tabellenblatt verwenden?
Im Makro steht
Breite = 15
und oben steht:
Public Breite As Double
Das Makro schreibt den Wert der Breite nicht in eine Zelle.
Nun will ich nach Ablauf des Makros in die Zelle A1 händisch schreiben:
"= Breite * 10"
LG,
Barbara

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nein!
03.12.2016 13:06:15
Luc:-?
Tach, Barbara;
1. In einem Makro definierte Variablen stehen nur dem VBA-Projekt der Mappe zV. In einer Fml können sie nur indirekt benutzt wdn, indem eine in die Fml eingebundene Fkt (UDF) sie zV stellt.
2. Wenn das Makro beendet ist, hat die Variable idR keinen Wert mehr, es sei denn, sie oder das Makro ist Static.
3. Falls eine Variable von einem Makro nicht in eine Zelle geschrieben wdn soll (dann stünde ihr Wert ja zV), kann ihr Wert auch einem definierten Namen der Mappe bzw eines Blattes als Konstante zugewiesen wdn. Diesen Namen könntest du dann so benutzen, wie du es dir hier vorstellst.
Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Nein!
03.12.2016 15:03:18
Michael
Hi,
mit 1. meint Luc so was:
Option Explicit
Public pBreite As Double
Sub BreiteZuweisen()
pBreite = 15
End Sub
Function Breite() As Double
Breite = pBreite
End Function

Die Funktion muß anders heißen als die Variable, deshalb habe ich letzterer ein p vorangestellt.
Aufruf in einer Zelle aber immer mit Klammern: =Breite()*10
Schöne Grüße,
Michael
P.S.: Breite hat den Wert 0, bevor die Sub aufgerufen wurde - es ist also nicht erkennbar, ob die 0 aus der Deklaration oder der Sub stammt - die ja vielleicht auch mal 0 zuweisen kann.
Die Unterscheidung erfordert einen kleinen Umweg:
Option Explicit
Public pBreite As Double
Public pBexist As Boolean
Sub BreiteZuweisen()
pBreite = 15
pBexist = True
End Sub
Function Breite()
If pBexist Then Breite = pBreite Else Breite = "#NV"
End Function

Anzeige
Nur eine Ergänzung …
03.12.2016 16:20:19
RPP63
Hi Michael!
Wenn Du einer UDF einen Fehlerwert übergeben willst, solltest Du die CVErr()-Funktion nutzen.
Siehe http://www.cpearson.com/excel/ReturningErrors.aspx
Hieße:
If pBexist Then Breite = pBreite Else Breite = CVErr(xlErrNA)   'oder auch CVErr(2042)
Gruß Ralf
ah, super, Ralf,
03.12.2016 17:06:10
Michael
denn mit einem "händischen" #NV-Test war ich denn nicht ganz glücklich.
Dein Hinweis ist genau das, was mir noch gefehlt hat.
Danke & schöne Grüße,
Michael
Barbara sollte besser nach 3.Pkt vorgehen! orT
03.12.2016 19:24:41
Luc:-?
Schö2AdSo, Luc :-?
Du hast ja Recht,
04.12.2016 14:08:05
Michael
Luc:-?,
und insgesamt sollte sie uns vielleicht auch mitteilen, wofür das Ganze überhaupt gut sein soll...
Dir auch & Gruß,
Michael
Anzeige
AW: Du hast ja Recht,
04.12.2016 19:12:25
Barbara
Wozu das ganze gut sein soll?
Gute Frage. Bin einfach am Experimentieren.
Die Möglichkeit der einfache Verwendung eines Namens beim händischen Schreiben will ich nicht missen.
Daher erscheint mir aus jetziger Sicht am Besten, die Variable Breite einem Namen zuzuschreiben und werde dazu nun doch eine eigene Zelle dafür opfern.
Danke für Eure Ausführungen. War sehr hilfreich.
LG, Barbara
Eine Zelle muss nicht geopfert wdn, ...
05.12.2016 01:19:04
Luc:-?
…Barbara,
beachte meine Ausführungen unter dem 3.Pkt. Ein definierter Name muss nicht unbedingt auf ein(ig)e Zelle(n) verweisen. Das ist nur eine von 3 Möglichkeiten. Grundsätzlich definiert ein Name nämlich eine Fml, die aus einem Verweis auf eine oder mehrere Zellen (auch unzu­sammen­hän­gend als ;-getrennte Liste) bzw eine Konstante (zB =0) oder MatrixKonstante wie ={1.2.3;4.5.6}, auch mit Texten (={"a"."b";"c"."d"}) u.a., oder einer normalen BerechnungsFml bestehen kann. Du musst den Wert deiner vbVariablen nur vom Makro als "=" & .Value (in US-Notation!) des definierten Namens eintragen lassen.
Morrn, Luc :-?
Anzeige
AW: oT an Luc ...
05.12.2016 11:53:35
... neopa C
Hallo Luc,
... im anderen Forum kann ich Dir nun auch nicht mehr antworten und in diesem Forum ist der entsprechende thread (ich weiß schon gar nicht mehr um was es da ging und finde ihn deswegen auch nicht mehr) wohl schon einige Tage deaktiviert im Archiv liegend.
Gruß Werner
.. , - ...
AW: oT danke für die Info und ...
05.12.2016 18:56:08
... neopa C
Hallo Michael,
... wie ich gerade feststellen musste, war ich Dir ja dort auch noch eine Antwort schuldig.
Ist die Antwort für Dich noch von Interesse?
@ Luc,
... sorry, aber ich sehe für mich momentan keinen wirklichen Nutzeffekt in Deinem Tool.
Gruß Werner
.. , - ...
Anzeige
AW: oT danke für die Info und ...
05.12.2016 20:10:03
Michael
Hi Werner,
sehr nett, aber: danke, nein - ich bin gedanklich schon wieder wo ganz woanders...
Ich versuche grad, mich zu motivieren, in die Kälte rauszugehen: keinen Bock, aber wat mutt, dat mutt.
Schönen Abend & Gruß,
Michael
Das sollte auch nur zeigen, dass man eine ...
08.12.2016 20:59:20
Luc:-?
…solche Vereinzelung, wenn man sie denn unbedingt benötigt, unter bestimmten Bedingungen auch noch nachträglich herstellen kann, Werner;
außerdem hatte ich im anderen Forum klargestellt, dass es auch einen mathematischen Sinn hat, wenn eine plurale MatrixFml ihre Ergebnisse untrennbar zusammen­hängend darstellt, denn sie bilden dann ebenfalls eine Matrix im algebraischen Sinne.
Man kann auf den jüngsten TeilBeitrag eines bereits archivierten Threads idR noch 6 Tage lang antworten, danach ist endgültig Schluss.
Gruß, Luc :-?
Anzeige
AW: gut zu wiissen ...
09.12.2016 14:19:30
... neopa C
Hallo Luc,
... allerdings ist es manchmal sehr aufwendig, wenn man den jüngsten Beitrag eines thread suchen will, aber nicht mehr weiß, um welchen thread es ging. Ich nutze praktisch fast immer nur die Forumsliste.
Gruß Werner
.. , - ...

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige