Page 1 of 2 1 2 LastLast
Showing results 1 to 10 of 11

Thread: Button betätigen über VBA

  1. #1
    alex1982 Gast

    Ausrufezeichen Button betätigen über VBA

    Hallo zusammen!

    gibt es eine Möglichkeit Buttons in einem bestimmten Bild über VBA anzusprechen und ein LeftClickUp Ereignis des entsprechenden Buttons auszulösen?
    Der Hintergrund ist folgender: wir haben im jetzigen Ausbau ca.25 Anlagen deren Status überprüft und dementsprechend den Steuerbord gesetzt werden soll. Dieses soll für einzelne Anlagen, Anlagengruppen sowie für alle, über entsprechende Buttons realisiert werden. Im endausbau werden es ca. 500 Anlagen. Für Einzelstart und Gruppenstart haben wir schon Buttons mit entsprechenden VBA Makros erstellt. Jetzt wollte ich einen Button Projektieren der über die Namen der Gruppen-Buttons auf die Buttons zugreift und diese betätigt. Geht sowas überhaupt?

  2. #2

    Default Re: Button betätigen über VBA

    Verstehe ich es richtig, dass das LeftClickUp VBA Ereignis von 500 Buttons per Click sequenziell ausgeführt werden soll?

    In der Runtime, sind da alle 500 Buttons zu diesem Zeitpunkt sichtbar? (geöffnet in ein Bild)

  3. #3
    alex1982 Gast

    Default AW: Button betätigen über VBA

    Das LeftClickUp VBA Ereignis soll nur bei ca. 50 Sammel-Buttons ausgeführt werden. Diese sind in einem Bild dargestellt und Sichtbar. Die Sammel-Buttons(Gruppen-Buttons) sind für das Starten der Anlagengruppen (ca. 5-10 Anlagen) zuständig. Der VBA-Code dafür ist auch schon fertig. Es fehlt halt noch der Gesamtstart und da es dort 10-mal so viele Anlagen sind muss der Code auch 10-mal so groß sein und dass möchten wir umgehen indem die 50 Buttons über einen Button (fast) gleichzeitig betätigen. Eine Verzögerung beim Starten der einzelnen Anlagen ist annehmbar.

  4. #4

    Default Re: Button betätigen über VBA

    Auch wenn die Buttons fast gleichzeitig betätigt werden, werden die events nicht parallel abgearbeitet, sondern sequenziell, button event für button event.

    Es vielleicht fast besser eine VBA Funktion zu erstellen, und diese Funktion in ein VBA Macro 50 mal aufzurufen jeweils mit anderen Parameter. Ändert sich bei den Parameter nur wenig, könnte der Aufruf in einer Schleife erfolgen mit Schleifenvariablen als Parametervariablen.

    Auch könnte als Quelle von Parameter für die Funktion ein Array von Konstanten sein, was leichter eweiterterbar wäre.

  5. #5
    tobiassedlmeier Gast

    Default Re: Button betätigen über VBA

    Was wird hier auf den Buttons ausgeführt? Werden Anlagen über Variablen eingeschaltet? Es gibt auch die Möglichkeit, ein Rezept anzulegen, in dem die 50 Variablen sind und diese Rezept über eine Funktion an einem Sammelbutton auszuführen.

  6. #6

    Default Re: Button betätigen über VBA

    so wie ich das verstanden habe, müssten nicht die Funktionen bei den Buttons ausgeführt werden, oder Variablen geschrieben werden, sondern die VBA LeftClickUp events bei den Buttons ausgeführt werden.

  7. #7
    alex1982 Gast

    Default AW: Re: Button betätigen über VBA

    Quote Originally Posted by markclemens View Post
    Auch wenn die Buttons fast gleichzeitig betätigt werden, werden die events nicht parallel abgearbeitet, sondern sequenziell, button event für button event.

    Es vielleicht fast besser eine VBA Funktion zu erstellen, und diese Funktion in ein VBA Macro 50 mal aufzurufen jeweils mit anderen Parameter. Ändert sich bei den Parameter nur wenig, könnte der Aufruf in einer Schleife erfolgen mit Schleifenvariablen als Parametervariablen.

    Auch könnte als Quelle von Parameter für die Funktion ein Array von Konstanten sein, was leichter eweiterterbar wäre.
    Danke für so viele Anregungen!

    Die Werte sind nicht immer gleich. es kann sein das manche Anlagen für den Start gesperrt sind also wird bei den Gruppen-Buttons auf den Wert der Variable geschaut und dementsprechend dann ein Bestimmter wert abgesetzt. Weitere Vorgabe vom Kunden ist, dass das ganze einfach erweiterbar sein soll.

    Die Parameter sind Variablenname die sich sehr unterscheiden.

  8. #8
    alex1982 Gast

    Default AW: Re: Button betätigen über VBA

    Quote Originally Posted by markclemens View Post
    so wie ich das verstanden habe, müssten nicht die Funktionen bei den Buttons ausgeführt werden, oder Variablen geschrieben werden, sondern die VBA LeftClickUp events bei den Buttons ausgeführt werden.

    Es sieht folgendermaßen aus: Die Buttons sind KombiElemente die 20-80 Variablen enthalten. Als LeftClickUp Event ist ein VBA-Makro programmiert der die Variablen in bestimmter Reihenfolge ausliest, verarbeitet und den Zenon Variablen wieder zuweist.

  9. #9
    stessl666 Gast

    Default Re: Button betätigen über VBA

    Würde mich prinzipiell auch interessieren, ob dies möglich wäre:
    Sinnvoll z.B. da ein Button bequemerweise eine Verzögerung anbietet.

  10. #10
    Join Date
    23.08.2010
    Posts
    1

    Default AW: Button betätigen über VBA

    Hier ein Beispiel:

    Im Bild "Systembild_Fußzeile" wird über VBA ein
    Button "Button_Gebaeude" angeklickt.



    '+++ Unter VBA\ModuleElement einfügen +++




    '---------------------------------------------------------------------------------------------------------

    Dim MyPicture As DynPicture
    Dim MyElement As Element

    '---------------------------------------------------------------------------------------------------------

    Public Sub Hahn()

    Set MyPicture = thisProject.DynPictures.Item("Systembild_Fußzeile")
    If MyPicture Is Nothing Then Exit Sub
    If MyPicture.Online = True Then

    Set MyElement = MyPicture.Elements.Item("Button_Gebaeude")

    If MyElement Is Nothing Then Exit Sub

    MyElement.LeftClickDown
    MyElement.LeftClickUp

    End If

    End Sub

Similar Threads

  1. Farbzuweisung über Farbpalette
    By michab in forum zenon Supervisor
    Replies: 7
    Last Post: 15th October 2012, 10:52
  2. Zeisteuerung über VBA ändern
    By dftchristian in forum VBA
    Replies: 1
    Last Post: 23rd September 2009, 14:59
  3. Default Kontrollelemente über VBA
    By dftchristian in forum VBA
    Replies: 2
    Last Post: 27th August 2009, 12:00
  4. Archiv Werteimport über VBA
    By Axel in forum VBA
    Replies: 1
    Last Post: 2nd April 2009, 10:55
  5. SMS über ISDN versenden
    By sknoerr in forum zenon Network
    Replies: 1
    Last Post: 19th December 2008, 12:39

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •