Office: VBA Formulareingaben prüfen

Helfe beim Thema VBA Formulareingaben prüfen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Falls die Steuerelemente tatsächlich eine fortlaufend Nummerierung haben, kann man den Code trotzdem noch etwas vereinfachen, indem man die Nummer in... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von sven78hh, 29. April 2012.

  1. fette Elfe Erfahrener User

    VBA Formulareingaben prüfen


    Hallo Karin,
    die Version gefällt mir persönlich noch am allerbesten.
    Allerdings kann man da auch noch eine Kleinigkeit vereinfachen. ;)
    Anstatt:
    Code:
    Private Sub CheckBox1_Click()
        CheckBoxPingPong CheckBox1.Tag
    End Sub
    folgendes:
    Code:
    Private Sub CheckBox1_Click()
        CheckBoxPingPong ActiveControl.Tag
    End Sub
    Dann wird die aufrufende Zeile universell für alle Controls, muss nicht bei jedem angepasst werden, sondern kann per Copy/Paste eingefügt werden.




    Ganz meine Meinung. :)



    Öhm... wie jetzt?
    :D:D:D
     
    fette Elfe, 1. Mai 2012
    #16
  2. sven78hh
    sven78hh Erfahrener User
    Hallo ihr Zwei,

    ich habe mich gestern und heute mit eurem Code beschäftigt. Allerdings habe ich noch Fragen :-(

    Folgenden Code habe auf GRund eurer Vorlage erstellt:

    Code:
    Private Sub CheckBox1_Click()     CheckBoxPingPongGross CheckBox1.Tag End Sub
    Private Sub TextBox1_Change()     CheckBoxPingPongGross TextBox1.Tag End Sub
    
    Ich glaube das Verstehe ich noch nicht wie ".Tag" und "strNummer" zueinander finden...
    Ich erstelle eine Sub und übergebe mit Tag ein Parameter. Bei mir sieht es dann so aus:

    Code:
    Private Sub cbGross1_Change()     CheckBoxPingPong cbGross1.Tag End Sub
    
    Das ganze mache ich für jede Checkbox. (cbGross 1 bis cbGross n)

    Code:
    Private Sub txtKurzGross1_Change()      CheckBoxPingPong txtKurzGross1.Tag  End Sub
    
    Das ganze mache ich für jedes Textfeld. (txtKurzGross 1 bis txtKurzGross n)


    Code:
    Private Sub LabGrossOK1_Change()     CheckBoxPingPong LabGrossOK1.Tag End Sub
    
    Das ganze mache ich für jedes Label. (LabGrossOK 1 bis LabGrossOK n)


    Code:
    Private Sub LabGrossFehler1_Change()     CheckBoxPingPong LabGrossFehler1.Tag End Sub
    
    Das ganze mache ich für jedes Label. (LabGrossFehler 1 bis LabGrossFehler n)

    Die Tags sind entsprechend der Formularfelder benannt (cbGross hat z.B, den Tag 1)
    Das habe ich im Formulareditor (eigenschaftenfenster eingestellt.

    Unter meinen ganzen Sub's für die Textfelder, Checkboxen und Label habe ich diesen Code:

    Code:
    Public Sub CheckBoxPingGross(strNummer As String)    Me.Controls("LabGrossOK" & strNummer).Visible = Me.Controls("cbGross" & strNummer) And Me.Controls("txtKurzGross" & strNummer) <> ""    Me.Controls("LabGrossFehler" & strNummer).Visible = (Me.Controls("cbGross" & strNummer) And Me.Controls("txtKurzGross" & strNummer) = "") Or _       (Me.Controls("cbGross" & strNummer) = False And Me.Controls("txtKurzGross" & strNummer) <> "") Or _       (Me.Controls("cbGross" & strNummer) = False And Me.Controls("txtKurzGross" & strNummer) = "") End Sub
    
    Leider bekomme ich es nicht zum laufen.
    Wenn ich das richtig verstehe (wobei ich mir nicht sicher bin das ich es tue ;-)) muss ich doch ".Tag" der Variablen "strNummer" zuweisen, oder?
    Wie finden denn cbGross1, txtKurzGross1, LabGrossOk1 und LabGrossFehler1 zusammen?
    Ich definiere zwar "strNummer As String" aber "strNummer" weiß doch nichts mit ".Tag" an zu fangen, oder?

    Jetzt habe ich so viel Zeit investiert das ich auch nicht aufgeben will. Ich wäre euch dankbar wenn ihr noch mal helfen würdet.

    Viele Grüße
    Sven
     
    Zuletzt von einem Moderator bearbeitet: 3. Mai 2012
    sven78hh, 2. Mai 2012
    #17
  3. fette Elfe Erfahrener User
    Hallo Sven,

    zuerst einmal eine Bitte:
    wenn Du Code hier im Forum postest, dann nicht im normalen Text. So ist der kaum lesbar.
    Wenn Du einen Beitrag verfasst, oder eine Antwort schreibst, wirst Du über dem Texteingabefeld ein Rautensymbol finden. Wenn Du darauf klickst erscheint folgender Text im Eingabefeld an der Stelle wo sich der Cursor befindet:
    [ C O D E ] [ / C O D E ]
    Der Cursor sollte jetzt in der Mitte zwischen den eckigen Klammern blinken.
    Wenn Du jetzt Code aus dem Makro-Editor kopierst und zwischen die Klammern einfügst, dann wird der Code so dargestellt wie bei Karin und mir, und ist viel besser lesbar.
    VBA Formulareingaben prüfen Code-im-Forum.jpg


    Deine Frage kann Karin vermutlich besser beantworten, aber ich versuchs mal:

    1. rufst Du folgende Sub in den Ereignisprozeduren auf:
    Code:
    CheckBoxPingPongGross
    Deine Sub heißt aber:
    Code:
    CheckBoxPingGross
    So kann das nix werden. ;O)

    2. Wenn Du eine Sub aufrust, und hinter den Aufruf einen Parameter schreibst:
    Code:
    Private Sub cbGross1_Change()
    
    '   Aufruf:          Parameter:
        CheckBoxPingPong cbGross1.Tag
        
    End Sub
    Dann wird der Parameter an die Variable innerhalb der Klammer hinter dem Sub-Namen übergeben:
    VBA Formulareingaben prüfen Parameterübergabe.jpg

    Übergibst Du mehrere Parameter, so werden die Werte in der Reihenfolgen an die Variablen übergeben, in der sie aufgelistet sind. Eigentlich ganz einfach (Ich hoffe das ist verständlich und ich erzähle keinen Mumpitz):
    Code:
    Private Sub CheckBox1_Click()
    CheckBoxPingPong "CheckBox1", "TextBox1", "LabelOK1", "LabelFault1"
    End Sub
    
    Public Sub CheckBoxPingPong(strCheckBox As String, strTextBox As String, strLabelOK As String, strLabelFault As String)

    Falls noch Fragen sein sollten, frag ruhig.
     
    fette Elfe, 2. Mai 2012
    #18
  4. Beverly
    Beverly Erfahrener User

    VBA Formulareingaben prüfen

    Hi Sven,

    ich habe den Code mal in die Arbeitsmappe eingebaut - schau ihn dir einfach mal an, vielleicht wird dir dann einiges klarer.

    Bis später,
    Karin
     
    Beverly, 2. Mai 2012
    #19
  5. sven78hh
    sven78hh Erfahrener User
    Es funktioniert

    Hey!

    Auch wenn ich das nicht ohne eure Hilfe hinbekommen habe bin ich stolz wie Bolle, das es funktioniert! ;)
    Vielen Dank noch mal für eure Unterstützung!
    Gruß
    Sven

    Den Anhang 5851 betrachten
     
    Zuletzt bearbeitet: 4. Mai 2012
    sven78hh, 3. Mai 2012
    #20
Thema:

VBA Formulareingaben prüfen

Die Seite wird geladen...
  1. VBA Formulareingaben prüfen - Similar Threads - VBA Formulareingaben prüfen

  2. VBA - Ausblenden aller Tabellenblätter außer X

    in Microsoft Excel Hilfe
    VBA - Ausblenden aller Tabellenblätter außer X: Guten Morgen, ich bin ziemlicher VBA Neuling und habe aktuell Probleme mit einer Datei, die ich entwickelt habe. Zu der Datei: Es handelt sich um Daten, auf die lediglich ein bestimmter...
  3. Kamera in Excel einbinden und per vba Fotos erstellen

    in Microsoft Excel Hilfe
    Kamera in Excel einbinden und per vba Fotos erstellen: Kamera in Excel einbinden Hallo, ich suche einen Code für eine UserForm, mit der ich die integrierte Kamera des WinPC in der UserForm anzeigen lassen kann und davon ein Bild sichern kann.
  4. Liste aller Comboboxen im Sheet

    in Microsoft Excel Hilfe
    Liste aller Comboboxen im Sheet: Hallo allerseits, Ich möchte alle Comboboxen eines Worksheets mit VBA auslesen und finde nicht den Namen der Liste in den Sheet-Eigenschaften, in der die Comboboxen gespeichert sind. Wer weiß, wo...
  5. Pivot Tabelle: Quelle per VBA verändern

    in Microsoft Excel Hilfe
    Pivot Tabelle: Quelle per VBA verändern: Hi all, gibt es eine Möglichkeit, wie ich die Quelle einer Pivot Tabelle mit einem Klick aktualisieren kann? 1) Beispiel Quelle: [Datum_Dateiname.xlsx]Tabelle1!$A:$AA 2) Beispiel wie es je nach...
  6. Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche)

    in Microsoft Excel Hilfe
    Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche): Hallo zusammen, ich arbeite mit einer Excel-Arbeitsmappe, die mehrere Tabellenblätter enthält. Jedes Blatt dokumentiert bestimmte Vorgänge, und die Struktur der Daten ist in allen Blättern...
  7. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  8. Formulareingabe Datumsfeld prüfen

    in Microsoft Excel Hilfe
    Formulareingabe Datumsfeld prüfen: Hallo Ich habe eine Textbox mit dem Namen txtDatum. Bevor ich die Daten im Arbeitsblatt speichere, prüfe ich mit IsDate(txtDatum.Value) ob der Wert ein Datum ist. Es ist mir aber schon passiert...
  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