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. Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA

    in Microsoft Excel Hilfe
    Datei in mehreren Ordnern suchen und wenn gefunden öffnen?! Macro / VBA: Hallo Leute, Hoffentlich könnt ihr mir hier helfen, ich krieg den Syntax einfach nicht hin (wahrscheinlich ist es auch totaler käse den ich programmiert habe). Also im Grunde soll eine Datei...
  3. Textteile aus Zelle mit mehreren Absätzen

    in Microsoft Excel Hilfe
    Textteile aus Zelle mit mehreren Absätzen: Hallo, ich habe folgendes Problem: Ich habe in einer Liste in einer Zelle mehrere Angaben aus denen ich Textteile (z.B. alles was in () oder {} ist) herausziehen will, um damit weiter zurechnen....
  4. Aufrufen Datei aus SharePoint per VBA

    in Microsoft Access Hilfe
    Aufrufen Datei aus SharePoint per VBA: Wer kann mir helfen. In meiner Firma gibt es Dateien in diversen Ordner in Form von SharePoints, worauf alle Kolleginnen und Kollegen zugreifen kann. Dort habe ich eine Excel-Vorlage, worin die...
  5. VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.

    in Microsoft Excel Hilfe
    VBA: Spalten auf anderen Worksheeds in der Mappe ausblenden.: Hallo zusammen, Eine Tabelle mit 9 Worksheets, Datenblatt, Studien, Studie_1 ...Studie_7. Auf dem Deckblatt werden in Zelle B4-B10 die Namen der Studien eingetragen. Davon abhängig ob ein Name...
  6. VBA Zeilen kopieren mit Bedingung

    in Microsoft Excel Hilfe
    VBA Zeilen kopieren mit Bedingung: Hallo zusammen, Ich möchte per Makro Zeilen aus Tabelle2 in Tabelle3 kopieren, wenn eine Bedingung erfüllt ist. Bedingung: Der Wert in Spalte E (Tabelle2) kommt in Tabelle1 in Spalte E vor....
  7. VBA - Datensätze ans Ende einer anderen Tabelle kopieren

    in Microsoft Excel Hilfe
    VBA - Datensätze ans Ende einer anderen Tabelle kopieren: Hallo zusammen, ich habe gerade eine "Abrechnungs"-Datei für einen Kindergartenbasar erstellt. Es wäre klasse, wenn man per Schaltfläche die Datensätze aus der Tabelle "Kaeufer" ans Ende der...
  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