Clever-Excel-Forum

Normale Version: Application.Run(1) = Not Application.Run(2)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen!

Aktuell bin ich dabei ein Lagerverwaltungstool zu schreiben. 

Es gibt einen Benutzermodus und einen Entwicklermodus. Die beiden Modi unterscheiden sich z.B. darin welche Zellen man auswählen kann und welche Blätter angezeigt werden, etc. 
Des Weiteren gibt es für den Benutzer eine andere Ansicht als für den Entwickler.

Die Ansicht des Benutzers ist 


Code:
Application.ExecuteExcel4Macro "show.toolbar(""Ribbon"",False)"
Application.DisplayFormulaBar = False
Application.DisplayFullScreen = True

ActiveWindow.DisplayHorizontalScrollBar = False
ActiveWindow.DisplayVerticalScrollBar = False
ActiveWindow.DisplayWorkbookTabs = False
 
Die Ansicht des Entwicklers ist

Code:
Application.DisplayFullScreen = False
Application.ExecuteExcel4Macro "show.toolbar(""Ribbon"",true)"
Application.DisplayFormulaBar = True

ActiveWindow.DisplayHorizontalScrollBar = True
ActiveWindow.DisplayVerticalScrollBar = True
ActiveWindow.DisplayWorkbookTabs = True


Nun möchte ich, dass man über ein Piktogramm auf der Startseite die Ansicht ändern kann. 

Code:
Application.Run"'XXX.xlsm'!Benutzer" = Not Application.Run"'XXX.xlsm'!Entwickler"
 
o.g. Code funktioniert leider nicht! 

Dieselbe Syntax benutze ich auch noch an anderer Stelle im Projekt um eine Form ein- und auszublenden und da funktioniert es.


Habt ihr eine Idee wie ich das umsetzen kann? Kann ja nicht so schwer sein.



Vielen Dank und schöne Grüße
Yannick P.
Hallöchen,

Zitat:Dieselbe Syntax benutze ich auch noch an anderer Stelle im Projekt um eine Form ein- und auszublenden und da funktioniert es.

Glaub ich nicht. Bei einem Form nutzt man die Visible-Eigenschaft.

Application.Run"'XXX.xlsm'!Benutzer" führt ein Makro aus. Zum Vergleichen bräuchtest Du was mit Rückgabewert, z.B. eine Function bzw. Du vergleichst Variablen oder Konstanten.

Also z.B. wenn Du nur prüfst, ob da ein Entwickler sitzt

If DerVormPC = "Entwickler" then Application.Run"'XXX.xlsm'!Entwickler" Else Application.Run"'XXX.xlsm'!Benutzer"

oder gleich, wenn die Variable beide Zustände haben kann,

Application.Run"'XXX.xlsm'!" & DerVormPC
(15.04.2024, 18:49)schauan schrieb: [ -> ]Application.Run"'XXX.xlsm'!Benutzer" führt ein Makro aus. Zum Vergleichen bräuchtest Du was mit Rückgabewert, z.B. eine Function bzw. Du vergleichst Variablen oder Konstanten.
Application.Run gibt die Rückgabe einer Funktion zurück. 
Man kann einer Funktion aber keinen Rückgabewert zuweisen, wie es hier versucht wird. Das geht aber auch sonst nicht.
Hallöchen,

ok, ich war da nur der Annahme, dass hier Makros (Subs) ausgeführt werden.
Korrekt wäre, wenn Functions dahinter stecken, dann ein If davor und ein Then dahinter 100
Die Frage lässt Raum für Spekulationen…
Moin,

es sollte auch nicht außer acht gelassen werden, dass rumfuddeln im der Benutzeroberfläche ein großes Maß an Fingerspitzengefühl und insbesondere eine sehr sorgfältige Fehlerbehandlung und "Exit-Szenarien" braucht. Sonst passiert es ganz schnell, dass deine Nutzer in Excel lahmgelegt werden, auch in den Fällen, in denen sie gar nicht mit deiner (Diktator)-App arbeiten wollen. Für mich steht der Aufwand und die benötigten Kenntnisse für ein sauberes Arbeiten dabei in einem mißverhältnis zu den bisherigen Kenntnissen des TE. Ich würde mich da insgesamt fragen, wozu er die Möglichkeiten der Nutzer einschränken will. 

Viele Grüße 
derHöpp
hat sich erledigt.
Ich verstehee nicht warum dieser Tread als 'wichtiges Thema' dargestellt wird und nich als ein normales Thema.
@snb,

verstehe ich gerade auch nicht ... Confused ich beobachte das weiter.
(16.04.2024, 10:10)schauan schrieb: [ -> ]ich beobachte das weiter.
Spannend, weil der Thread gestern den Status zwischendurch mal verloren hatte.
Seiten: 1 2