Office: (Office 365) User Form Textbox sperren wenn

Helfe beim Thema User Form Textbox sperren wenn in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Martin, was soll ich sagen...........Bin zu dämlich. Dein Code funktioniert perfekt (war klar). Aber will ich eine andern Konstellation machen... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Cherished, 18. November 2022.

  1. Cherished hat Ahnung

    User Form Textbox sperren wenn


    Hallo Martin,
    was soll ich sagen...........Bin zu dämlich.
    Dein Code funktioniert perfekt (war klar). Aber will ich eine andern Konstellation machen läuft es nicht mehr.
    Habe folgendes Gemacht.
    Code:
    Private Sub Zählerart_Change() 'mit mehreren textboxen
    Dim sperren(), Textboxen()
    Dim KWsperren(), KWTextboxen()
      sperren = Array("Heizung", "Frischwasser warm")
      Textboxen = Array("Stand_bis_HT", "Stand_bis_NT")
      TBSperr sperren, Textboxen
    'soll die Boxen (HT/NT/KW)sperren
       KWsperren = Array("Kaltwasser", "Warmwasser", "Frischwasser kalt", "Hauptwasseruhr")
       KWTextboxen = Array("Stand_bis_HT", "Stand_bis_NT", "Stand_bis_KW")
       KTBSperr KWsperren, KWTextboxen 'eigene Funktion?
    End Sub
    Die KWSperr Funktion habe ich fast gelassen wie die TBSperr Funktion

    Code:
    Function KTBSperr(Zählerart, TBNamen)
    Dim Enab As Boolean, Element As Variant, Farbe As Variant
      With Me
        Enab = False
        For Each Element In Zählerart 'wenn Zählerart=aus Zahlart=>Enab=true
          Enab = IIf(.Zählerart = Element, True, Enab)
        Next Element
        Farbe = IIf(Enab, RGB(217, 217, 217), RGB(255, 255, 255))
        For Each Element In .Controls 'alle textboxen zurücksetzen
          If TypeName(Element) = "TextBox" Then
            Element.BackColor = RGB(255, 255, 255)
            Element.Enabled = True
          End If
        Next Element
        For Each Element In TBNamen
          .Controls(Element).Enabled = Not Enab ' sperrt die TextBoxen
          .Controls(Element).BackColor = Farbe ' Hindergrundfarben
        Next Element
      End With
    Es wird dann nur die in KWsperren Zählerarten berücksichtigt. Ich glaube Excel mag mich nicht mehr oder ich bin zu alt für den schei......
    Gruß
    Martin
     
    Cherished, 21. November 2022
    #16
  2. Hallo Martin,
    nicht verzweifeln. Dein Programm tut genau das, was du ihm sagst.
    Erst werden "Stand_bis_HT", "Stand_bis_NT" mit TBSperr behandelt.
    In dem nachfolgenden KTBSperr wird alles aufgehoben und dann
    "Stand_bis_HT", "Stand_bis_NT", "Stand_bis_KW" behandelt.<
    1. Frage: was willst du wirklich erreichen?
    2. Hinweis: TBSperr und KTPSperr sind, soweit ich das übersehe, identische Subs. Warum dann 2mal?
    Gruß der Martin
     
    AlterDresdner, 22. November 2022
    #17
  3. Cherished hat Ahnung
    Hallo Martin,
    ich kann nicht oft genug Danke sagen das du so geduldig bis.
    Ich will erreichen !
    kürze es wieder Ab
    Zählerart A oder B oder C sperren die TB HT und NT (das klappt ja)
    Nun sollen die Zählerarten D oder E oder F oder G die TB HT und NT und KWh nur sperren
    und zu guter Letzt,
    soll die Zählerart H die TB HT und NT und m³ nur sperren.
    Deshalb habe ich gedacht, ich muss für jede Konstellation eine eigene Funktion machen.
    Gruß
    Martin
     
    Cherished, 22. November 2022
    #18
  4. User Form Textbox sperren wenn

    Hallo Martin,
    1. habe ich einen Denkfehler gemacht. Das eingefügte Resetten aller TB ist natürlich Unsinn, weile es bei jedem Aufruf stattfindet und damit vorhergehende Aufrufe der Routine konterkariert. Ist in der beigefügten Fassung behoben, findet nur noch statt, wenn der Parameter ResetAll angegeben ist.
    2. Der Sinn eines Subs oder einer Function besteht darin, den gleichen Code mit unterschiedlichen Parametern nur einmal zu schreiben, um das Sub dann mit unterschiedlichen Parametern aufzurufen.
    3. Dein Denkweg ist verkehrt herum. Du musst erst die TB betrachten, durch welche Zählerart sie verändert werden und sie dann der Reihe nach durchgehen.
    Wenn ich dich richtig verstanden habe, führt das zu:
    Code:
    Private Sub Zählerart_Change()
      'Sperren von _NT, _HT
      sperren = Array("Heizung", "Kaltwasser", "Warmwasser", "Frischwasser warm", "Frischwasser kalt", "Hauptwasseruhr")
      Textboxen = Array("Stand_bis_HT", "Stand_bis_NT")
      TBSperr sperren, Textboxen, True 'hier werden alle TB resettet
      'Sperren von Stand_bis_KW
      sperren = Array("Kaltwasser", "Warmwasser", "Frischwasser kalt", "Hauptwasseruhr")
      Textboxen = Array("Stand_bis_KW")
      TBSperr sperren, Textboxen
      'Sperren von m³
      sperren = Array("??????") 'Namen ???? anpassen
      Textboxen = Array("?????m3")
      TBSperr sperren, Textboxen
    End Sub
    
    Function TBSperr(Zaehlart, TBNamen, Optional ResetAll)
    Dim Enab As Boolean, Element As Variant, Farbe As Variant
      With Me
        Enab = False
        For Each Element In Zaehlart 'wenn Zählerart=aus Zahlart=>Enab=true
          Enab = IIf(.Zählerart = Element, True, Enab)
        Next Element
        Farbe = IIf(Enab, RGB(217, 217, 217), RGB(255, 255, 255))
        If Not IsMissing(ResetAll) Then 'alle textboxen zurücksetzen
          For Each Element In .Controls
            If TypeName(Element) = "TextBox" Then
              Element.BackColor = RGB(255, 255, 255)
              Element.Enabled = True
            End If
          Next Element
        End If
        For Each Element In TBNamen
          .Controls(Element).Enabled = Not Enab ' sperrt die TextBoxen
          .Controls(Element).BackColor = Farbe ' Hindergrundfarben
        Next Element
      End With
    End Function
    
    Irgendwie komme ich mit A...H und deinem Code nicht ganz klar, ich hoffe aber, der Weg ist nun klarer.
    Versuchen wir es mal so...
    Gruß der Martin
     
    AlterDresdner, 23. November 2022
    #19
  5. Cherished hat Ahnung
    Hallo Martin,
    ich verstehe es einfach nicht.
    Deine Code funktionieren immer aber sobald ich ihn anpassen oder erweitere will ist aus die Maus.
    Code:
    Private Sub Zählerart_Change()
      'Sperren von _NT, _HT
      sperren = Array("Heizung", "Frischwasser warm")
      Textboxen = Array("Stand_bis_HT", "Stand_bis_NT")
      TBSperr sperren, Textboxen, True 'hier werden alle TB resettet
    '  Sperren von _KW,_HT,_NT
      sperren = Array("Kaltwasser", "Warmwasser", "Frischwasser kalt", "Hauptwasseruhr")
      Textboxen = Array("Stand_bis_KW", "Stand_bis_HT", "Stand_bis_NT")
      TBSperr sperren, Textboxen
      'Sperren von_m³,_HT,_NT
      sperren = Array("Strom allgemein")
      Textboxen = Array("Stand_bis_m3", "Stand_bis_HT", "Stand_bis_NT")
      TBSperr sperren, Textboxen
      'Sperren von _KW,_m³
      sperren = Array("Strom Heizung")
      Textboxen = Array("Stand_bis_m3", Stand_bis_KW)
      TBSperr sperren, Textboxen
    End Sub
    Vielleicht reden wir aneinander vorbei oder ich kann es nicht richtig rüberbringen was ich will.
    folgendes passiert jetzt
    generell:
    seit ich den Code um Sperren von_KW, _m³ erweiter habe bekomme ich in der Function ab der zeile " .Controls(Element).Enabled = Not Enab ' sperrt die TextBoxen" einen Fehler. (passiert nicht wenn der Code nicht dabei ist)
    Es passiert folgendes wenn (Sperren von _KW, _m³ nicht dabei)

    bei Sperren von _NT, _HT passiert nichts (keine TB ist gesperrt)
    Bei Sperren von _KW, _HT, _NT wird nur die TB KW gesperrt.
    Bei Sperren von _m³, _HT,_NT werden die richtigen TB gesperrt.
    Nochmal was mache ich falsch?
    Gruß
    Martin
     
    Cherished, 23. November 2022
    #20
  6. Hallo Martin,
    wenn du deinen mit dem nachfolgenden Code vergleichst, wird vermutlich deine Denkblockade aufgelöst.
    Es ist nicht zu fragen, bei welcher Zählerart(en) welche Textboxen beeinflusst werden, sondern: welche Textbox(en) werden durch welche Zählerart(en) beeinflusst. Wenn eine textbox im Code 2mal auftreten würde, würde immer nur die letzte Definition wirken...
    Code:
    Private Sub Zählerart_Change()
      'Regeln von _NT, _HT
      sperren = Array("Heizung", "Kaltwasser", "Warmwasser", "Frischwasser warm", "Frischwasser kalt", "Hauptwasseruhr", "Strom_allgemein")
      Textboxen = Array("Stand_bis_HT", "Stand_bis_NT")
      TBSperr sperren, Textboxen, True 'hier werden alle TB resettet
      'Regeln von Stand_bis_KW
      sperren = Array("Kaltwasser", "Warmwasser", "Frischwasser kalt", "Hauptwasseruhr", "Strom Heizung")
      Textboxen = Array("Stand_bis_KW")
      TBSperr sperren, Textboxen
      'Regeln von m³
      sperren = Array("Strom allgemein", "Strom Heizung")
      Textboxen = Array("Stand_bis_m3")
      TBSperr sperren, Textboxen
    End Sub
    
    Gruß der MArtin
     
    AlterDresdner, 24. November 2022
    #21
  7. Cherished hat Ahnung
    Hallo Martin,
    Hast du den Jubelschrei (nicht wegen Fußball) gehört.
    Genau das war es was ich nicht Verstanden habe. Jetzt ist der Groschen aber gefallen.
    Viele, Vielen Dank für die Geduld und natürlich für deine Lösung.
    Gruß
    Martin
     
    Cherished, 24. November 2022
    #22
  8. User Form Textbox sperren wenn

    Na dann, viel Spaß beim nächsten Problem!
    Gruß der Martin
     
    AlterDresdner, 24. November 2022
    #23
Thema:

User Form Textbox sperren wenn

Die Seite wird geladen...
  1. User Form Textbox sperren wenn - Similar Threads - User Form Textbox

  2. User form Drucken Position

    in Microsoft Excel Hilfe
    User form Drucken Position: Hallo Leute Habe den Code für das Ausdrucken einer User Form.. Die User Form wird im A4 Blatt gedruckt habe aber links nur einen Abstand von einem 1 cm zum Blattrand. Wie kann ich den Abstand vom...
  3. User Form

    in Microsoft Excel Hilfe
    User Form: Hallo Leute Habe ine User form dort kann ich Daten aus Tabelle Januar füllen. Habe jetzt noch 11 Tabellanblätter eingefügt Februar bis Dezember. Ist es möglich mit der gleichen User form auf...
  4. "Datei öffnen" Dialog aufrufen (User-Form)

    in Microsoft Excel Hilfe
    "Datei öffnen" Dialog aufrufen (User-Form): Hallo Zusammen, ich möchte gerne über ein User_Form unter anderem den "Datrei Öffnen" Dialog starten. Mein bisheriger Code hierzu: Code: Private Sub Cmd_Kalkulation_laden_Click()...
  5. User Form Multiseiten mit Options Button wechsel

    in Microsoft Excel Hilfe
    User Form Multiseiten mit Options Button wechsel: Hallo zusammen, ich habe da ein kleines Problem,ich würde gerne in einer User Form von einer Multipage Seite zur nächsten wechsel, wenn einer der Options Button die auf der Seite sind ausgewählt...
  6. User Formen erstellen

    in Microsoft Excel Hilfe
    User Formen erstellen: :o Hallo mal wieder, dafür das ich erst vor 3 Wochen mit Excel angefangen habe, wird es langsam immer besser. Aber nun zum problem. Dies ist eine Excel um Flugzeug Umläufe einen Team...
  7. User Form VBA

    in Microsoft Excel Hilfe
    User Form VBA: Hallo zusammen, ich habe zwei Fragen zu User-forms. 1. Ich habe ein User-Form in der Entwicklungsumgebung gestaltet. Wie bekomme ich dieses jetzt in eine Excel-Tabelle kopiert? Irgendwie...
  8. User Form: Gemeinsamkeiten zusammenfassen

    in Microsoft Excel Hilfe
    User Form: Gemeinsamkeiten zusammenfassen: Hallo, hoffe der Titel is ned zu unklar ;) Ich arbeite grade mal wieder an meinen Excel/VBA (06) Fertigkeiten. Folgendes: In einer Tabelle habe ich eine Liste mit zB Mitarbeitern,...
  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