For-Next Schleife mit me.Controls funktioniert nicht richtig (Excel VBA/Userform)

Diskutiere und helfe bei For-Next Schleife mit me.Controls funktioniert nicht richtig (Excel VBA/Userform) im Bereich Microsoft Office im Windows Info bei einer Lösung; Guten Tag, Ich versuche die ganze Zeit eine Säule aus Label (Label_BalkenZ10 - Label_BalkenZ49) mit einer for/Next-Schleife anzusteuern. Also erstes... Dieses Thema im Forum "Microsoft Office" wurde erstellt von KSMBond, 7. Juni 2019.

  1. KSMBond
    KSMBond Gast

    For-Next Schleife mit me.Controls funktioniert nicht richtig (Excel VBA/Userform)


    Guten Tag,


    Ich versuche die ganze Zeit eine Säule aus Label (Label_BalkenZ10 - Label_BalkenZ49) mit einer for/Next-Schleife anzusteuern.

    Also erstes hatte ich 40 mal dies geschrieben: (z.B.)

    If JGesZ >= LBGP14 Then 'Abfrage der Werte
    Label_BalkenZ14.Visible = True 'Balken sichtbar
    Label_BalkenZ14.BackColor = Farbe11 'Festlegen der Hintergrundfarbe
    Else
    Label_BalkenZ14.Visible = False 'Balken ausgeblendet
    End If

    Nun wollte ich es vereinfachen mit: (z.B.)

    For X = 10 To 48 Step 1 'festlegen der Variablen


    If JGesZ >= Me.Controls("LBGP" & X) Then 'Abfrage der Werte
    Me.Controls("Label_BalkenZ" & X).Visible = True 'Balken sichtbar
    Me.Controls("Label_BalkenZ" & X).BackColor = Farbe02 'Festlegen der Hintergrundfarbe
    Else
    Me.Controls("Label_BalkenZ" & X).Visible = False 'Balken ausgeblendet
    End If
    Next X


    Wobei "LBGP"/X mit Private As Integer und JGesZ als Private As Single (aber auch mit Integer geht es nicht) bestimmt wurde. Die verschiedenen Werte von JGesZ sind 0.02 - 2 im 0,5er Schritten.

    Als Ergebnis wird mir kein Label angezeigt. Vorher wurde jeder Label bis zum entsprechenden Wert von JGesZ angezeigt.

    Die Zeile "If JGesZ >= Me.Controls("LBGP" & X) Then" verursacht immer einen Fehler "Laufzeitfehler -2147024890 (80070057) Das angegebene Objekt konnte nicht gefunden werden".


    Weis jemand was ich falsch mache?


    Danke


    Klaus
     
  2. KSMBond Win User

    For-Next Schleife mit me.Controls funktioniert nicht richtig (Excel VBA/Userform)

    Hallo Andreas,

    Dieses Beispiel sieht nicht schlecht aus :))

    Versuche mal es an meine Datei anzupassen.

    Ich habe noch nie Sub-Routinen genommen, die nicht in der Userform waren.

    Klaus
  3. KSMBond Win User

    For-Next Schleife mit me.Controls funktioniert nicht richtig (Excel VBA/Userform)

    Hallo Claus,

    Der Wert von JGesZ kommt von JGesZ = Range("SwocheN1") Was einem Wert von 0.00 bis 2.00 (umgerechnete Zeiten in Stunden) sein kann.

    LBGP10-49 ist der Wert für die Label, die z.B. LBGP10 = 0.02 'Balken 10; LBGP11 = 0.05; LBGP12 = 0.08; LBGP13 = 0.1; LBGP14 = 0.15 'Balken 14; LBGP15 = 0.2; LBGP16 = 0.25 usw.

    Diese Wertde von LBGP werden mit JGesz verglichen. Ist der Wert <= dem LBGP dann sollte der Label_BalkenZ in einer Farbe angezeigt werden, ansonsten nicht.

    X ist also eine Zahl zwischen 10 und 49. Damit ein Vergleich stattfinden kann muß LBGP mit dem Wert X zusammengesetzt werden. Anschließend wird X für die Label_Balken genutzt um sie ein/aus zu schalten.

    Die Label_Balken sind zu Zent in einem Frame untergebracht, die 4 Frames wiederum in einem großen Frame. Somit brauche ich nur einen Frame um alle 4 Frame auszuschalten (etwas kompliziert ja .....

    Hier ein Bild der Userform : hier ein Bild in Aktion vor meiner Vereinfachungsbemühungen:


    [​IMG]


    [​IMG]


    Ich habe vergessen zu sagen das es sich um Private Sub Frame_BalkenZ1_Layout() handelt :(
  4. Andreas Killer Win User

    For-Next Schleife mit me.Controls funktioniert nicht richtig (Excel VBA/Userform)

    Der Wert von JGesZ kommt von JGesZ = Range("SwocheN1") Was einem Wert von 0.00 bis 2.00 (umgerechnete Zeiten in Stunden) sein kann.
    LBGP10-49 ist der Wert für die Label, die z.B. LBGP10 = 0.02 'Balken 10; LBGP11 = 0.05; LBGP12 = 0.08; LBGP13 = 0.1; LBGP14 = 0.15 'Balken 14; LBGP15 = 0.2; LBGP16 = 0.25 usw.

    Diese Wertde von LBGP werden mit JGesz verglichen. Ist der Wert <= dem LBGP dann sollte der Label_BalkenZ in einer Farbe angezeigt werden, ansonsten nicht.
    Die Skalierung von den Namen der Label abhängig zu machen und einen Vergleich durchzuführen erscheint mir doch etwas fragwürdig.

    "Richtiger" wäre doch eine Skalierung anhand der Position und Anzahl der Label ... von unten nach oben. Also:

    Die Label können wir gezielt einlesen, die sind alle im "großen" Frame.

    Der unterste Label repräsentiert einen Wert und der oberste auch. Wenn wir die Label anhand der Position nummerieren und bei 0 beginnen ist der unterste 0 und der oberste 39.

    Und damit können wir mir einer einfachen 3-Satz Rechnung einen Wert X umrechnen und damit die Position zwischen 0 und 39 bestimmen.

    Ist eigentlich ganz simpel, ich mach mal ein Beispiel mit 30 Label... spielt für meinen Code keine Rolle:

    https://www.dropbox.com/s/pqmtf98gk3hv56n/05776008-fe43-4733-b84d-7be1ec913c27.xlsm?dl=1

    Klick mal auf den Button um die Userform zu starten, dann ändere die Uhrzeiten in den Textboxen.

    Andreas.
  5. Claus Busch Win User

    For-Next Schleife mit me.Controls funktioniert nicht richtig (Excel VBA/Userform)

    Hallo Klaus,

    die Variablen wurden so festgelegt:

    Dim Ctrl As Control

    Dim i As Integer

    Dim varFrames As Variant

    Dim JGesZ As Double

    Claus
  6. KSMBond Win User

    For-Next Schleife mit me.Controls funktioniert nicht richtig (Excel VBA/Userform)

    Hallo Claus,

    Danke für die Formeln.

    mit welchem DIM wurde Varframe und CTRL belegt? ich nutze Office 365 home

    Ich weis das ich bei Excel oft umwege machen muß um ans Ziel zu kommen :(

    Nach dem ich gefragt habe, habe ich weitere Test gemacht, dabei ist mir aufgefallen, das im "Private Sub Frame_BalGrZ_Layout()" (dort sind alle 4 Frames der Balken enthalten) nur die ersten 11 Label über den For-Schleife angezeigt werden. Ab der 12ten Abfrage
    werden alle nciht mehr angezeigt.

    Daraufhin habe ich die Schleife in einem der 4 Frames (Frame_BalkenZ2) eingetragen. Beim ersten Frame (Frame_BalkenZ1) hat es geklappt ab dem 2ten nicht mehr.

    Wenn ich Ihre Formel genauer betrachte, muß ich vor meiner For-Schleife ihre Schleife setzen, damit alle Label angesprochen werden.

    Ich Teste dies mal :)

    Danke

    Klaus
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

For-Next Schleife mit me.Controls funktioniert nicht richtig (Excel VBA/Userform) - Microsoft Office

Die Seite wird geladen...

For-Next Schleife mit me.Controls funktioniert nicht richtig (Excel VBA/Userform) - Similar Threads - For Next Schleife

Forum Datum

Auslesen von Controls aus UserForm

Auslesen von Controls aus UserForm: Guten TagIch habe da eine Exceldatei mit etlichen UserForms. Leider wurden einige UserForms beschädigt. Ein automatische Reparatur ist nicht möglich. Ich habe nun Code gefunden, mit denen ich die...
Microsoft Office 23. Januar 2023

Userform in Excel2019/VBA funktioniert nicht richtig

Userform in Excel2019/VBA funktioniert nicht richtig: Guten Abend, ich habe eine Userform erstellt, einige Tasten drin, die Makros aufrufen, die dann was in eine Tabelle schreiben. Die Userform "Bedienfdeld" wird durch Aufruf folgender Sub...
Microsoft Office 23. Dezember 2020

VBA Userform

VBA Userform: Hallo, ich habe mir heute Excel für Mac gekauft, damit ich an meinem VBA Projekt, im Home-Office weiter arbeiten kann. Nun musste ich feststellen, dass es die Userform in der Neusten Excel-Version...
Software 26. September 2020

Wie Endlos-Schleife durch Excel-VBA abbrechen?

Wie Endlos-Schleife durch Excel-VBA abbrechen?: Ich kann im Task-Manager keinen zugehörigen Prozess finden. Die Endlos-Schleife wird durch meine VBA-Programmierung verursacht.
Microsoft Office 26. April 2020

Excel-VBA: Userform weg!

Excel-VBA: Userform weg!: Hallo Support, heute wiederhole ich die Frage von Tim vom 1. Oktober 2019 bezüglich des nicht Vorhandenseins von Excel-VBA: UserForm. Dieser Fehler ist nach wie vor immer noch da. Ist eine...
Microsoft Office 4. März 2020

In Excel-VBA Editor-Userform

In Excel-VBA Editor-Userform: In Excel-VBA Editor-Userform ist bei mir die Werkzeugsammlung (Toolsammlung) verschwunden. Es wird nur eine leere Box gezeigt
Microsoft Office 18. Oktober 2018

VBA Userform

VBA Userform: Guten Tag miteinander ! Im Bewusstsein, dass diese Frage alt ist, stelle ich sie ... wird es in Excel für Mac 2016 ein Update geben, damit dann das VBA User Form wieder zur Verfügung stünde ?...
Microsoft Office 11. April 2018
For-Next Schleife mit me.Controls funktioniert nicht richtig (Excel VBA/Userform) solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.