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 zusammen, da bin ich schon wieder. Nachdem mir Helmut (HKindler) so super geholfen hat und ich auch damit auch weiter gekommen bin, stoße ich... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Cherished, 18. November 2022.

  1. Cherished hat Ahnung

    User Form Textbox sperren wenn


    Hallo zusammen,
    da bin ich schon wieder. Nachdem mir Helmut (HKindler) so super geholfen hat und ich auch damit auch weiter gekommen bin, stoße ich gleich wieder an meine Grenzen.

    Ich habe ein User Form dort werden die Daten in eine Tabelle übertragen.
    Nun will ich aber bestimmte Textboxen sperren wenn zwei Boxen (Stockwerk/Zählerart) bestimmte Werte haben.
    Ich dachte schreibe einfach:
    Code:
     If Stockwerk = "Allgemein" And _
       .Zählerart = "Strom Heizung" Then
       Stand_bis_KW.Enabled = False
      Else
      Stand_bis_KW.Enabled = True
    
    End If
    Aber wohin ?
    In "Private Sub UserForm_Initialize()"
    oder in die Textbox Stand_bis_KW
    Oder liege ich komplett falsch?
    Ich hoffe ich konnte es einigermaßen erklären.

    Gruß
    Martin
     
    Cherished, 18. November 2022
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    kürzer
    Stand_bis_KW.Enabled = Not Stockwerk = "Allgemein" And _
    .Zählerart = "Strom Heizung"
    Change Stockwerk
    Change "Strom Heizung"

    User Form Textbox sperren wenn GrußformelUser Form Textbox sperren wenn Homepage
     
  3. Cherished hat Ahnung
    Hallo Hajo
    danke für die Schnelle Antwort.
    Leider weiß ich dadurch immer noch nicht wohin!
    Gruß
    Martin
     
    Cherished, 18. November 2022
    #3
  4. Hajo_Zi
    Hajo_Zi Erfahrener User

    User Form Textbox sperren wenn

    Du scheibst VBA Code und kennst nicht das Change Ereignis?
    Ist VBA das richtige Mittel?

    .
     
  5. Cherished hat Ahnung
    Hallo Hajo,
    leider ist nicht jeder VBA Profi.
    Ich bin jemand der sich Code sucht und zusammenbastelt.
    Verstehen, nicht immer
    Ich probiere solange herum bis es passt oder Frage hier mal nach.
    Gruß
    Martin
     
    Cherished, 18. November 2022
    #5
  6. Hallo Martin (=Namensvetter),
    sicher bist du schon selber draufgekommen, aber ich kann es mir nicht verkneifen:
    Hajo meinte in seiner unnachahmlich charmanten Art (offensichtlich sind ihm seine Textbausteine gerade abhanden gekommen), dass abgesehen von der Codeverkürzung der Code in die Routinen
    Private Sub Stockwerk_Change und .
    Private Sub Zählerart_Change
    einzufügen ist.
    Bytheway: Vermeide die Verwendung von Umlauten und ß bei allen Gelegenheiten für Namensgebung, auch wenn du nie vorhast, den Code in ein nichtdeutsches Excel zu verschieben. VBA ist manchmal nicht gut drauf bei ä etc.
    Gruß der AlteDresdner (bürgerlich Martin)
     
    AlterDresdner, 18. November 2022
    #6
  7. Cherished hat Ahnung
    Hallo Martin,
    Danke für deine Erklärung.
    Habe es jetzt wie Folgt gemacht.
    Code:
    Private Sub Stockwerk_Change()
    Stand_bis_KW.Enabled = Not Stockwerk = "Allgemein" And _
    .Zählerart = "Strom Heizung"
    Change Stockwerk
    Change "Strom Heizung"
    End Sub
    
    Private Sub Zählerart_Change()
    Stand_bis_KW.Enabled = Not Stockwerk = "Allgemein" And _
    .Zählerart = "Strom Heizung"
    Change Stockwerk
    Change "Strom Heizung"
    End Sub
    
    Jetzt bekomme ich eine Fehlermeldung
    Nur so ein Gedanke. Wenn die Formel einmal in Stockwerk_Change und in Zählerart_Change rein muss, müßte dann nicht die Change Anweisung angepasst werden?
    Gruß
    Martin
     
    Cherished, 18. November 2022
    #7
  8. Cherished hat Ahnung

    User Form Textbox sperren wenn

    Hallo Hajo Hallo Martin
    Jetzt habe ich es hinbekomme. Habe nämlich jetzt verstanden was Hajo mit Change Stockwerk u. Change "Allgemein" gemeint hat.
    Die brauche ich gar nicht in der Formel. Micht hat die ganze Zeit Change "Allgemein" irritiert.
    Habe es ja jetzt hinbekommen.
    Eine Frage habe ich jetzt doch noch. Wie muss der Code aussehen wenn ich eine zweit Textbox sperre will?(selbe Bedingung)
    Gruß
    Martin
     
    Cherished, 18. November 2022
    #8
  9. Hallo Martin,

    Private Sub Stockwerk_Change()
    Test_Enab
    End Sub
    Private Sub Zählerart_Change()
    Test_Enab
    End Sub
    Function Test_Enab() As Boolean
    Dim Enab As Boolean
    With Me
    Enab = Not .Stockwerk = "Allgemein" And .Zählerart = "Strom Heizung"
    .Stand_bis_KW.Enabled = Enab
    .WasAuchImmer.Enabled = Enab
    End With
    End Function
    Gruß der ebenfalls Martin
     
    AlterDresdner, 18. November 2022
    #9
  10. Cherished hat Ahnung
    Hallo Martin,
    dein Code hat mich echt sehr weitergebracht.
    Konnte dadurch weiter Ideen umsetzen.(zum leitwesen meiner Frau).
    Also vielen Dank und ein schönen Sonntag.
    Gruß
    Martin
     
    Cherished, 19. November 2022
    #10
  11. HAllo Martin,
    Gruß an die Gnädige! Sie soll es nicht so eng sehen, Wenn Du Spaß und Erfolg an und bei der Sache hast, ist der Umgang mit Dir wesentlcih einfacher...User Form Textbox sperren wenn *:)*
    Gruß der Martin
     
    AlterDresdner, 20. November 2022
    #11
  12. Cherished hat Ahnung
    Hallo Martin,
    so schnell liest man sich wieder User Form Textbox sperren wenn :( (sorry)
    Ich wollte den Code vereinfachen und übersichtlicher zu halten. Doch ich bin kläglich gescheitert.
    Es werden Textboxen ja gesperrt wenn Zählerart =XY ist
    Da es mehrer Zähler gibt die eine Textbox sperren sollen, wollte ich die Zähler zusammen fassen.
    Mein Ansatz
    Code:
    Dim sperren(3) as ?????
    sperren(0) = "Kaltwasser"
    sperren(1) = "Warmwasser"
    sperren(2) = "Frischwasser warm"
    
    dann deinen Code
    Code:
    With Me
    Enab = Not .Zählerart = sperren  ' sperrt die TextBoxen HT u.NT
    .Stand_bis_HT.Enabled = Enab
    .Stand_bis_NT.Enabled = Enab
    ' Hindergrundfarbe bei gesperrter TextBox
      .Stand_bis_HT.BackColor = RGB(217, 217, 217)
      .Stand_bis_NT.BackColor = RGB(217, 217, 217)
    'Hindergrundfarbe bei Entsperrter TextBox
       If Stand_bis_HT.Enabled And Stand_bis_NT.Enabled = True Then
       .Stand_bis_HT.BackColor = RGB(255, 255, 255)
       .Stand_bis_NT.BackColor = RGB(255, 255, 255)
    End If
    End With
    End Function
    Ich hoffe es gibt eine eine einfache Lösung ich will nämlich nicht das man den ganzen Code neu aufbauen muß
    Ich schreibe es dann halt für jede Zählerart
    Mit schlechtem Gewissen
    Martin
     
    Cherished, 20. November 2022
    #12
  13. User Form Textbox sperren wenn

    Hallo Martin;
    wieso schlechtes Gewissen? Alles gut.
    EIn Vorschlag:

    Dim sperren(), Enab As Boolean, zaehl As Variant, Farbe As Variant
    sperren = Array("Kaltwasser", "Warmwasser", "Frischwasser warm")
    With Me
    Enab = False
    For Each zaehl In sperren 'wenn Zählerart=aus sperren=>Enab=true
    Enab = IIf(.Zählerart = zaehl, True, Enab)
    Next zaehl
    .Stand_bis_HT.Enabled = Enab ' sperrt die TextBoxen HT u.NT
    .Stand_bis_NT.Enabled = Enab
    Farbe = IIf(Enab, RGB(255, 255, 255), RGB(217, 217, 217))
    ' Hindergrundfarben
    .Stand_bis_HT.BackColor = Farbe
    .Stand_bis_NT.BackColor = Farbe
    End With
    Gruß der Martin
     
    AlterDresdner, 21. November 2022
    #13
  14. Cherished hat Ahnung
    Hallo Martin,
    danke das du so geduldig mit mir bist.
    Dein Code funktioniert. Doch es geht noch weiter.
    (nicht mit den Augen rollenUser Form Textbox sperren wenn *:)*)
    Es gibt ja noch andere Kombinationen.
    wie z.B: wenn (kürze es mal ab) ZählerArt A oder B oder C dann sperre TextBoxen 1 und 3 und 4.
    Auch hier dachte ich, ganz einfach mache eine andere Array (sperren1) und passen den rest einfach an.
    Weit gefehlt funktionierte eben nicht.
    Ich glaube VBA ist doch sehr aufwendiger wie ich es gedacht habe. Wobei ich schon einige Projekte umsetzen konnte.
    Kannst du mir nochmal den Weg zeigen, wäre echt Dankbar denn so würde mein Projekt immer Perfekter.
    Gruß
    Martin
     
    Cherished, 21. November 2022
    #14
  15. Hallo Martin

    Code:
    Dim sperren(), Textboxen()'für alles Subs in Userform
    Private Sub UserForm_Click()'mit nur einer textbox und anderen Zählern
      sperren = Array("Kaltwasser", "wasauchimmer")
      Textboxen = Array("Stand_bis_NT")
      TBSperr sperren, Textboxen
    End Sub
    
    Private Sub Zählerart_Change()'mit mehreren textboxen
    Dim sperren(), Textboxen()
      sperren = Array("Kaltwasser", "Warmwasser", "Frischwasser warm")
      Textboxen = Array("Stand_bis_HT", "Stand_bis_NT")
      TBSperr sperren, Textboxen
    End Sub
    Function TBSperr(Zaehlart, TBNamen)
    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))
        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
    
    End Function
    
    Das Userform_Click und das Zählerart_Change stellen nur 2 verschiedene Möglichkeiten mit unterschiedlichen Parametern dar.
    Gruß der Martin
     
    AlterDresdner, 21. November 2022
    #15
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