Office: Mit in Laufzeit erzeugten dynamischen Texboxen Werte vergleichen und einfärben

Helfe beim Thema Mit in Laufzeit erzeugten dynamischen Texboxen Werte vergleichen und einfärben in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, Ich brauche mal eine kleine Nachhilfe im Zusammenhang mit in Laufzeit dynamisch erzeugten TextBoxen. Ich denke da wahrscheinlich in die... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von edwinbastler, 12. Mai 2020.

  1. Mit in Laufzeit erzeugten dynamischen Texboxen Werte vergleichen und einfärben


    Hallo zusammen,
    Ich brauche mal eine kleine Nachhilfe im Zusammenhang mit in Laufzeit dynamisch erzeugten TextBoxen.
    Ich denke da wahrscheinlich in die verkehrte Richtung:
    Beim Aufruf der TextBoxen werden die Zellen der aktiven Tabelle normal ausgelesen und in den TextBoxen ausgegeben.
    Die TextBox mit der Bezeichnung "Tx" & S gibt nur den Text der Zellen aus Spalte A aus.
    S steht Zählernummer.
    Nun will ich im Klassenmodul die beiden TextBoxen, welche die Werte aus den Zellen der Spalten B und C ausgeben vergleichen.
    Wenn die Ausgabe der TextBox "Tz" & S < als die Ausgabe der TextBox "TL" & S ist soll die TextBox "Tz" & S rot eingefärbt werden.
    Mit manuell erzeugten TextBoxen kein Problem. Wie stelle ich das aber mit dynamisch erzeugten TextBoxen an.
    Als Basis meiner Versuche habe ich folgende Skripte versucht entsprechend angepasst zu verwenden.

    fürs Aktivieren der Textboxen:
    Code:
    und Auslösen mit Doppelklick auf Textbox:
    Code:
    Vielleicht erbarmt sich jemand meiner Hilflosigkeit und hilft mir sinnvoll weiter. Ich hänge eine Testdatei ran.

    :)
     
    edwinbastler, 12. Mai 2020
    #1
  2. Hi Edwin,

    ich schau mir jetzt Deine Datei nicht an, aber wenn Du schon mit Klassen arbeitest, dann solltest Du sie auch verwenden.
    Hier mal ein Bsp. für eine Textboxklasse
     
  3. Meinst Du mit "Klassenmodul" das einer Userform?

    Ist es immer noch das gleiche Thema wie hier:
    https://www.ms-office-forum.net/foru...d.php?t=366346
    ?

    Da wurde doch schon erklärt, wie du Textboxen (allgemein Steuerelemente) einer Userform mit variablen Namen ansprechen kannst. Oder hast du das schon wieder vergessen?
     
    EarlFred, 14. Mai 2020
    #3
  4. Mit in Laufzeit erzeugten dynamischen Texboxen Werte vergleichen und einfärben

    Hallo EarlFred,

    ja mit Klassenmodul. Das ist in der Datei angelegt, welche ich hoch geladen habe. Ja einfache Sachen wie z.B. eine MsgBox bei Doppelklick ausgeben oder ähnliches klappt auch wunderbar. Nur das was ich will eben nicht.

    Gruß Uwe
     
    edwinbastler, 14. Mai 2020
    #4
  5. ... und die ich mir nicht anschauen werde, weil es eine xlsm ist.
    Von daher lege ich großen Wert auf ordentliche Beschreibung im Posting.

    Erklär mir doch mal, wo da der Unterschied liegt. Vielleicht kann man dann gezielt helfen.

    Bei dir vorhandenes Wissen aus dem vorgenannten Thema von Dir:
    Code:
     
    EarlFred, 14. Mai 2020
    #5
  6. Hallo EarlFred,

    ich habe mal folgenden Weg probiert.

    ins Klassenmudul clsTextBox
    Code:
    Da bei Doppelklick meckert der Debugger Controls an. Was mach da falsch. Ich habe dann vorsorglich aus dem Userform S als Interger ausprobiert - leider das selbe Problem. Wo liege ich hier falsch?
     
    edwinbastler, 14. Mai 2020
    #6
  7. Ist das der ganze relevante Code? Fehlt da nicht noch was? Wo wird denn TxT ein Objekt zugewiesen?

    Die rot markierte Zeile muss so oder so ähnlich an geeigneter Stelle vorhanden sein:
    Code:
    Und bei solchen Fehler"beschreibungen" mecker ICH dich an: Welche Zeile? Welche Meldung? Was, wann, wo?

    Wo ist S deklariert? Was meinst du? Wo sehe ich das in dem Code?
     
    EarlFred, 14. Mai 2020
    #7
  8. Mit in Laufzeit erzeugten dynamischen Texboxen Werte vergleichen und einfärben

    ...oder ist TxT etwa eine bereits vorhandene Textbox mit genau diesem Namen?

     
    EarlFred, 14. Mai 2020
    #8
  9. Das S verwende ich in der Userform als Interger zum fortzählen der Textboxen

    Tx1 bis Tx10 Tz1 bis Tz10 TL1 bis TL10. Es existiert keine Textbos mit dem Namen TxT.

    Hängen bleibt der Debugger bei

    If Me.Controls("TL" & i).Value und markiert Controls blau

    Set TxT = Me.Controls("Textbox1") habe ich ausprobiert - will aber leider auch nicht.

    Set TxT = Me.Controls("Textbox.1") auch keine Änderung.

    Code:
    Ich weis leider nicht weiter.
     
    edwinbastler, 14. Mai 2020
    #9
  10. Hallo EarlFred,

    Ah.. jetzt weis ich warum der Link. Das war in einem anderen Zusammenhang.

    Hier mal der Code in der Userform:

    Code:
    Nun will ich diese dyn. erzeugten Textboxen Tz und TL zum vergleichen nehmen.
     
    edwinbastler, 14. Mai 2020
    #10
  11. Lass, so kommen wir nicht weiter.

    Entweder schaut sich das einer an, oder ich bau mir morgen eine Sandbox und schau mir das an
     
    EarlFred, 14. Mai 2020
    #11
  12. Hallo EarlFred,

    ich habe mal was zurecht gemacht und lade die Datei hoch. Das einfache Script mit der MsgBox funktioniert und gibt den Wert der in der Zeile stehenden Textboxen Mitte und rechts aus. Die Linke Textbox brauche ich zum Vergleich nicht unbedingt.

    Der größer als bzw. kleiner als Vergleich will nicht. Ich habe beide Script Varianten mal eingebaut. Alles andere hatte ich falsch verstanden.

    MfG Uwe
     
    edwinbastler, 14. Mai 2020
    #12
  13. Mit in Laufzeit erzeugten dynamischen Texboxen Werte vergleichen und einfärben

    Meine Frage war:
    deine Antwort:
    Der Satz ist zwar unvollständig, aber dennoch unrichtig: Du hast eine eigene Klasse angelegt, in der du die Textboxen behandelst. Das ist eine absolut wichtige Information, sonst hätte ich das nicht gefragt. Da muss die Antwort schon passen, wenn du uns nicht komplett in die Irre leiten willst (was dir gut gelungen ist).

    Innerhalb dieser Klasse, außerhalb deiner Userform, ist die Userform nicht bekannt (es sei denn, du würdest das der Klasse mitteilen). Du kannst hieraus also weder die Userform selbst noch deren Objekte ansprechen. Die enthaltene Prozedur Private Sub UserForm_Initialize() ist somit auch wirkungslos.

    Du behandelst die Textboxen doch "zeilenweise": Pro Zeile der Tabelle legst du 2 Textboxen an (die erste mit der Beschreibung ignoriere ich hier, die ist irrelevant), wobei du die Ereignissteuerung beider Textboxen pro Zeile mit einer Instanz deiner Klasse regelst. Soweit alles OK, kann man so machen.
    Du hast also die beiden Textboxen einer Zeile innerhalb der gleichen Instanz deiner Klasse liegen als TxT und TxT1. Du vergleichst diese innerhalb der gleichen Instanz. Soweit alles OK.

    Was m. E. falsch konzeptioniert ist: Die Anderen Textboxen in den anderen Instanzen dieser Klasse würde ich so nicht ändern, das macht den Code komplett undurchsichtig.
    Ich würde von außen vorgehen, also aus der Userform heraus auf die Instanzen zugreifen. Du hast ja das Datenfeld msoTB, in der alle Deine Instanzen abgelegt sind.

    Jetzt die Frage, die eingangs schon relevant gewesen wäre: WANN, also auf welche Veranlassung heraus, sollen ALLE Textboxen / Instanzen abgearbeitet werden? Beim Doppelclick auf eine beliebige Textbox? Beim Initalisieren der Userform? Wenn du das noch mitteilst, ist der Code schnell angepasst.
     
    EarlFred, 14. Mai 2020
    #13
  14. Hallo EarlFred,

    danke für deine Rückmeldung. Es wäre sinnvoll das der Vergleich (größer als bzw. kleiner als) der Textboxen mit dem euzeugen der dynamischen Textboxen passiert.
    Bitte hab mit mir etwas Geduld. Ich bin noch stramm am Lernen und nicht mehr der jüngste.

    MfG Uwe
     
    edwinbastler, 14. Mai 2020
    #14
  15. ...und wagst dich in Programmiergefilde vor, bei denen die allermeisten lange zuvor das Handtuch werfen.
    Nein, keine Sorge, ich habe schon manchmal Geduld (wenn mich ein Thema interessiert, weil es mal nicht der forentypische Einheitsbrei ist, den man sonst hier serviert bekommt), auch wenn ich das sehr gut zu verbergen weiß *wink.gif*

    der Meinung war ich auch, daher habe ich das Codemodul der Userofm etwas umgebaut:
    Code:
    Da du lernen willst, habe ich ein paar Kleinigkeiten um- und eingebaut. Schau es dir einfach an und frage, wenn du Fragen hast.

    Womit ich noch nicht zufrieden bin: Die Erstellung der Textboxen in 3 Prozeduren könnte noch optimiert werden. Dazu fehlt mir aber grad die Zeit. Vielleicht machst du dich nochmal selbst ans Werk: Die Prozeduren unterscheiden sich nur in wenigen Punkten - da bietet es sich an, diese zusammenzufassen.
     
    EarlFred, 14. Mai 2020
    #15
Thema:

Mit in Laufzeit erzeugten dynamischen Texboxen Werte vergleichen und einfärben

Die Seite wird geladen...
  1. Mit in Laufzeit erzeugten dynamischen Texboxen Werte vergleichen und einfärben - Similar Threads - Laufzeit erzeugten dynamischen

  2. Power Query - Rücklaufkontrolle und Laufzeit berechnen

    in Microsoft Excel Hilfe
    Power Query - Rücklaufkontrolle und Laufzeit berechnen: Liebe Power Query Enthusiasten Ich habe folgende Aufgabe: Für Versandboxen mit eindeutiger ID soll eine Rücklaufkontrolle und Berechnung der Laufzeit erstellt werden. Die entsprechenden Daten aus...
  3. Maschinen laufzeit erechnen

    in Microsoft Excel Hilfe
    Maschinen laufzeit erechnen: Hallo, Ich kenne mich mit Excel nicht so gut aus und versuche mich da grad rein zu Fuchsen. Meine Tabele zeit an wie lange die jeweiligen produkte auf den Maschinen lauf, mein problem ist wie...
  4. lange Laufzeit beim Formatieren

    in Microsoft Excel Hilfe
    lange Laufzeit beim Formatieren: Hallo liebe Gemeinde, habe eine Mappe mit mehreren Tabellenblättern - zurzeit 42 auf 41 Blättern habe ich einen Monat abgebildet welchen ich mit einem Makro formatiere. Auf dem ersten Blatt...
  5. USysRibbons verursacht Laufzeit-Fehler

    in Microsoft Access Hilfe
    USysRibbons verursacht Laufzeit-Fehler: Meine erste Frage: Ich habe meine Datenbank von A2000 auf .accdb konvertiert und nutze ms365 bzw. AC2019/16. In meiner DB gibt es unter Addins ein benutzerdefinierte Symbolleiste aus der "alten"...
  6. USysRibbons verursacht Laufzeit-Fehler

    in Microsoft Access Hilfe
    USysRibbons verursacht Laufzeit-Fehler: Meine erste Frage: Ich habe meine Datenbank von A2000 auf .accdb konvertiert und nutze ms365 bzw. AC2019/16. In meiner DB gibt es unter Addins ein benutzerdefinierte Symbolleiste aus der "alten"...
  7. Herunterladen und Installieren der Microsoft 365 Access-Laufzeit

    in Microsoft Access Tutorials
    Herunterladen und Installieren der Microsoft 365 Access-Laufzeit: Herunterladen und Installieren der Microsoft 365 Access-Laufzeit Access für Microsoft 365 Office 2019 Access 2019 Microsoft 365 Mehr... Weniger...
  8. Laufzeiten-Fehler

    in Microsoft Excel Hilfe
    Laufzeiten-Fehler: Hallo Zusammen, In einem anderen Thread habe ich eine Anfrage gestellt wo ich nicht weiter komme. Nun habe ich versucht eine andere Herrangehensweise versucht, allerdings bekomme ich da ein...
  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.
    Information ausblenden