Hallo Leute,

bin am verzweifeln.

Habe hier folgendes Beispiel

Dim i
For i =1 To 16
Dim objAnsprechbar
Set objAnsprechbar = SmartTags("Ansprechbar"+CStr(i))
HmiRuntime.Screens("OverviewDiag").ScreenItems ("Test").Text=objAnsprechbar

If objAnsprechbar = "Wahr" Then
HmiRuntime.Screens("OverviewDiag").ScreenItems("Teilnehmer"+CStr(i)).text=CStr(i )
End If

Next

Habe Variablen von Ansprechbar1 bis Ansprechbar128 im Variablenhaushalt als boolsche Variable deklariert.

Habe Textfelder mit dem Namen Teilnehmer1 bis 128 im Bild OverviewDiag erstellt.

Nur zum testen läuft die For/next Schleife nur bis 16. Logischerweise soll die schon auch bis 128 laufen.

Wenn das Bit True ist, soll die Zahl in dem dazugehörigem Textfeld angezeigt werden. Ich weiß, das könnte man auf herkömmlichen Weg auch machen, wollte es aber über vba probieren.

Das Problem ist jetzt, nur wenn ich ein Ausgabefeld erstelle, indem ich mir z. B. die Variable Ansprechbar10 darstellen lasse, erscheint auch im Textfeld Teilnehmer10 die Zahl 10. Und nur in diesem Textfeld. Ändere ich die Variable in dem Ausgabefeld auf Ansprechbar 9 steht logischerweise im Textfeld Teilnehmer9 die Zahl 9.

Man kann also davon ausgehen, das das VBA Script die Variable nicht einließt, bzw. die Variable per VBA erst gelesen werden kann, wenn WinCC flex die Variable schon auf einer Seite per Textfeld oder E/A Feld eingelesen hat.

Hat jemand von euch Vorschläge dazu? Ist das wirklich normal so??

Gruß
Michael