Office: VBA Formulareingaben prüfen

Helfe beim Thema VBA Formulareingaben prüfen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich bin grad in das Thema VBA in Excel eingestiegen und will folgendes in Office 12 machen: Dafür sorgen das ein Textfeld nur mit... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von sven78hh, 29. April 2012.

  1. sven78hh
    sven78hh Erfahrener User

    VBA Formulareingaben prüfen


    Hallo zusammen,

    ich bin grad in das Thema VBA in Excel eingestiegen und will folgendes in Office 12 machen:

    Dafür sorgen das ein Textfeld nur mit Zahlen gefüllt werden kann.

    Dies ist der Code den ich verwende:
    Private Sub txtCqGross1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0
    End Sub

    Es gibt allerdings 15 Felder von txtCqGross (txtCqGross1 bis txtCqGross5) und ich möchte den Code aber nicht für jedes der Textfelder schrieben sondern das analog diesem Code machen:

    Dim iCountercbKlein As Integer
    For iCountercbKlein = 1 To 10
    Controls("cbKlein" & iCountercbKlein).Value = False
    Next iCountercbKlein

    Hat jemand eine Idee?
    Ich bin zu blöd. Habe schon stundenlang rumprobiert...

    Viele Grüße
    Sven aus HH
     
    Zuletzt bearbeitet: 29. April 2012
    sven78hh, 29. April 2012
    #1
  2. fette Elfe Erfahrener User
    Hallo sven78hh,

    Der Code wird, sobald der Fokus auf dem entsprechenden Textfeld liegt, bei jedem Tastendruck aufgerufen und prüft welche Taste Du gerade drückst.
    Falls die Taste eine Zahl repräsentiert, wird die Eingabe "erlaubt".
    Falls nicht, wird die Eingabe unterbunden. Es ist dann grad so als wenn garkeine Taste gedrückt worden wäre.

    Scheint genau das zu machen was Du möchtest.



    Jetzt wirds für mich undurchsichtig:
    - erst schreibst Du es gäbe 15 Felder, und dann sagst Du "von Feld 1 bis Feld 5". Okay, kann ein Tippfehler sein, verwirrt aber.
    - dann präsentierst Du einen Code der eine Schleife von 1 bis 10 durchläuft... ich denke es gibt 15 Felder?
    - in dem Code den Du benutzen möchtest, setzt Du den Wert von CheckBoxen auf "False". Was hat das mit Deiner Eingabebeschränkung auf Zahlen zu tun?

    Ich denke Dir kann eher geholfen werden, wenn Du eine Beispielmappe hochlädst und nochmal ganz genau beschreibst was Du eigentlich wie wo warum möchtest.



    Hier noch eine Meinung von mir:
    Es soll die Eingabe in 15 verschiedenen Textfeldern auf Zahlen eingeschränkt werden.
    Dazu kann man wunderbar das "KeyPress-Ereigniss" benutzen.
    Für diese Einschränkung wird nur eine einzige Zeile an Code benötigt, und die muss noch nichteinmal auf jedes Textfeld angepasst werden. Copy/Paste reicht aus.
    Warum also willst Du es Dir unnötig kompliziert machen?

    Wenn anstatt einer einzelnen und vor allem universellen Code-Zeile ein umfangreicher Code nötig wäre, würde ich einen Sinn sehen ihn in eine "Function" oder ein "Public Sub" auszulagern.
    Das würde aber immernoch nichts daran ändern, das Du für jedes Textfeld das Sub "KeyPress" benötigst um die "Function" oder das "Public Sub" auch aufzurufen.
    Du würdest also in Deinem Fall mit der einen Zeile nicht das geringste einsparen.

    Natürlich könnte man auch, nachdem alle Textfelder ausgefüllt sind, an einer sinnvollen Stelle im Gesamtablauf eine Prüfung mit einer Schleife durch alle Textfelder einbauen, und schauen ob überall nur Zahlen drinn stehen.
    Aber warum, wenn es viel sauberer und einfacher geht, so wie Du es bereits machst?

    Die einzige Möglichkeit die mir auf Anhieb einfällt Dein "15x" zu umgehen, wäre die objektorientierte Klassenprogrammierung.
    Die ist in meinen Augen für so eine Lappalie aber überdimensioniert, dadurch wird es für einen Anfänger nu wirklich nicht einfacher und sie ist (in meinen Augen) kompliziert und nicht ganz so leicht zu durchschauen.


    Falls Du das wirklich willst, hoffe ich das Beverly sich einschaltet, denn damit kenne ich mich nicht aus.
     
    fette Elfe, 30. April 2012
    #2
  3. sven78hh
    sven78hh Erfahrener User
    @ Fette Elfe:
    sorry für die verwirrung. da hab ich code kopiert und nicht an meien frage angepasst!?

    ich versuche mein Problem anders zu formulieren.
    (Es ist inzwischen einige Std. später und das erste "Problem" mit den Textfeldern die nur Zahlen kennen hat sich an einer anderen Stelle wiederholt)

    mit einer For/Next Schleife kann ich in einer Prozedur mehrere Textfelder ansprechen und z.b. den inhalt löschen.
    In meinem bsp. (auf dem Formular) heißen die Textfelder txtKurzKlein1, txtKurzKlein2 usw... bis txtKurzKlein10
    das tut was ich will und ich finde das auch toll so wie es ist ;-)

    Sub bsp()
    Dim icountertxtKurzKlein As Integer
    For icountertxtKurzKlein = 1 To 10
    Controls("txtKurzKlein" & icountertxtKurzKlein).Value = ""
    Next icountertxtKurzKlein
    End Sub



    und jetzt kommt das was ich eigentlich besser machen will...

    Ich habe auf meinem Formular einen Bereich mit 10 Checkboxen und 10 Textfelder die ich auf ihren Inhalt prüfen will. Das soll passieren während ich die Checkboxen und Textfelder bearbeite (nennt man das zur Laufzeit?)
    ich prüfe ob eine Checkbox (hier: cbKlein1) true ist und ob das dazugehörige Textfeld gefüllt ist (hier: txtKurzKlein1)
    wenn beides wahr ist dann ist ein Label (hier: LabKleinOK1) visible. (das Label enthält einen grünen Haken)
    wenn das nicht wahr ist dann wird ein anderes Label (hier: LabKleinFehler1) visible (das Label enthält ein rotes Ausrufezeichen)
    Damit das während der Eingabe bei der Checkbox und während der Eingabe bei dem Textfeld auf dem Formular passiert verwende ich zwei Prozeduren.

    Sub cbKlein1_click()
    und
    Sub txtkurzKlein1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    D.h.:
    Ich muss Zwanzig Prozeduren Schreiben bzw. Kopieren, Einfügen und anpassen!?

    Nun zu meiner eigentlichen Überlegung der daraus resultierende Frage:
    Ich würde gerne NUR eine Prozedur für meine Checkboxen schreiben und NUR eine für meine Textfelder.
    Wenn ich mit einer For/Next Schleife IN einer Prozedur eine Variablennamen zusammenbauen kann, wie kann ich das mit einem Prozedurnamen machen?
    Vielleicht muss man/kann man die IF-Schleifen auch einfach besser formulieren, damit es nciht nach unnötig viel Code aussieht.
    Da ich noch ziemlich am Anfang von VBA stehe, will ich mir auch gleich angewöhnen sauber zu programmieren.

    Über weitere Hilfe wäre ich dir/euch sehr dankbar!


    Dies sind die beiden Prozeduren für die CheckBox1 und das TextFeld1:


    Sub cbKlein1_click()
    If cbKlein1.Value = True And txtKurzKlein1 <> "" Then
    LabKleinOK1.Visible = True
    LabKleinFehler1.Visible = False
    Else
    If cbKlein1.Value = False And txtKurzKlein1 <> "" Then
    LabKleinOK1.Visible = False
    LabKleinFehler1.Visible = True
    Else
    If cbKlein1.Value = False And txtKurzKlein1 = "" Then
    LabKleinOK1.Visible = False
    LabKleinFehler1.Visible = False
    Else
    If cbKlein1.Value = True And txtKurzKlein1 = "" Then
    LabKleinOK1.Visible = False
    LabKleinFehler1.Visible = True
    End If
    End If
    End If
    End If
    End Sub


    Sub txtkurzKlein1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If txtKurzKlein1 <> "" Then cbKlein1.Value = True

    If cbKlein1.Value = True And txtKurzKlein1 <> "" Then
    LabKleinOK1.Visible = True
    LabKleinFehler1.Visible = False
    Else
    If cbKlein1.Value = False And txtKurzKlein1 <> "" Then
    LabKleinOK1.Visible = False
    LabKleinFehler1.Visible = True
    Else
    If cbKlein1.Value = False And txtKurzKlein1 = "" Then
    LabKleinOK1.Visible = False
    LabKleinFehler1.Visible = False
    Else
    If cbKlein1.Value = True And txtKurzKlein1 = "" Then
    LabKleinOK1.Visible = False
    LabKleinFehler1.Visible = True
    End If
    End If
    End If
    End If
    End Sub

    Hier ist ein Bildausschnitt von dem Formular:
    VBA Formulareingaben prüfen form.jpg

    die Datei selbst ist leider zu groß über 100Kb VBA Formulareingaben prüfen :mad:
     
    sven78hh, 30. April 2012
    #3
  4. Beverly
    Beverly Erfahrener User

    VBA Formulareingaben prüfen

    Hi Sven,

    wenn du für alle Text- bzw. alle CheckBoxen den Code nur jeweils einmal schreiben willst, dann geht das nur mittels Klassenprogrammierung.

    Bis später,
    Karin
     
    Beverly, 30. April 2012
    #4
  5. sven78hh
    sven78hh Erfahrener User
    Hallo Beverly,

    ich weiß nich ob das evt. etwas viel für den Anfang wäre wenn ich jetzt in die Klasseprogrammierung einsteige.
    Ich weiß nur ansatzweise was Klassenprogrammierung bedeutet und tue mich mit der Syntax von VBA noch etwas schwer. VBA Formulareingaben prüfen :eek:
    Vielleicht sollte ich das Vorhaben noch etwas vertagen.

    Vielleicht hat ja jemand einen Link, damit ich schon mal einen Blick auf die Klassenprogrammierung unter VBA werfen kann?


    Viele Grüße
    Sven
     
    sven78hh, 30. April 2012
    #5
  6. Beverly
    Beverly Erfahrener User
    Hi Sven,

    einen Link habe ich nicht, aber du kannst dir ja mal die angehängte Arbeitsmappe anschauen - dort wird bei Verlassen der TextBox(en), falls eine Zahleneingabe erfolgt ist, der Inhalt im Format "#,##0.00" angezeigt. Diesen Code müsstest du an deine Bedingungen anpassen.

    Eine Klasse ist eine Art "Container", in welchem die Objekte zusammengefasst (abgelegt) sind, die der betreffenden Klasse angehören. Es gibt bereits vorhandene Klassen (z.B. das Worksheet als Container-Objekt mit den Zellen als dort abgelegte Klassen-Objekte) und es gibt frei definierbare Klassen. Das Container-Objekt für frei definierte Klassen ist das Klassenmodul. Die Klasse (Container-Objekt bzw. Klassenmodul) kann man beliebig benennen, wobei sich allerdings eingebürgert hat, sie nach dem Inhalt (Klassen-Objekte) zu benennen und als Spezifikation den Präfix cls zu verwenden. Im Beispiel ist es das Klassenmodul clsTextBox. In diesem Klassenmodul befindet sich der Code, welcher in den betreffenden Klassen-Objekten (im Beispiel TextBoxen) als Ereignis ausgeführt werden soll. Zu beachten ist, dass selbst definierte Klassen-Objekte nicht den vollen Umfang an Ereignissen besitzen wie die "normalen" Objekte. Die Codezeile
    Code:
    Public WithEvents clTextBox As MSForms.TextBox
    legt fest, dass die Ereignisprozeduren in diesem Klassenmodul sich auf Steuerelemente vom Typ TextBox (MSForms.TextBox) beziehen sollen, welche den Namen clTextBox haben.

    Damit eine Klasse funktionieren kann, müssen die betreffenden Objekte erst der Klasse zugewiesen werden. Das erfolgt bei einem UserForm am günstigsten im UserForm_Initialize Ereignis, also wenn das UserForm geladen wird. Den dortigen Code habe ich mit einigen Kommentaren versehen, die verdeutlichen sollen was abläuft.

    Ich hoffe, dieser "Crash"-Kurs hat dir zumindest einen kleinen Einblick in die Klassenprogrammierung verschafft. :)

    Bis später,
    Karin
     
    Beverly, 30. April 2012
    #6
  7. sven78hh
    sven78hh Erfahrener User
    Vielen Dank Bevery!
    Ich werde mir das gleich mal ansehen ob ich das verstehe :-)

    Gruß
    Sven
     
    sven78hh, 30. April 2012
    #7
  8. fette Elfe Erfahrener User

    VBA Formulareingaben prüfen

    Hallo Sven,

    vorweg:
    die Klassenprogrammierung von Beverly ist der sauberere Weg.
    Allerdings auch etwas abstrakt, und deshalb halt nicht für jeden so ohne weiteres nach zu vollziehen. (ich tue mich selber auch schwer damit)

    Deshalb, um noch einen anderen Weg aufzuzeigen falls die Klassenprogrammierung nicht das Mittel der Wahl wird, und auch um zu zeigen wieviel Aufwand ohne sie nötig wird, habe ich mal ein wenig gebastelt:

    Den Anhang sven78hh - Boxen.xlsm betrachten

    Um umzusetzen was Du möchtest (so wie ich es verstanden habe) sind jeweils 3 Ereignisprozeduren pro Box-Gruppe nötig (in Deinem Fall also 45!):
    Code:
    Private Sub CheckBox1_Click()
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Private Sub TextBox1_Change()
    Der eigentliche Code kann dann aber in einer einzigen Prozedur ausgelagert und von allen Boxen aufgerufen werden.

    Allerdings gilt dabei auch folgende Voraussetzung:
    Die Boxnamen müssen pro Sorte jeweils gleich benannt und am Ende fortlaufend nummeriert sein:
    Code:
    CheckBox1
    CheckBox2
    CheckBox3
    ...
    (wie sie vorne benannt werden ist egal, nur gleich muss es sein)

    Ob und wie man ein Control auf einer UserForm (bzw. ein OLEObject auf einem Worksheet) mittels Variable direkt ansprechen kann, konnte ich bisher noch nie herausfinden (mir scheint es ist nicht vorgesehen).
    Deshalb habe ich dies über Schleifen gelöst.
    Falls es also einen direkten Weg gibt, könnte man die Schleifen einsparen, den Rest des Aufbaus aber vermutlich nicht.

    Zu Beachten:
    Bei der Identifizierung der Controlls habe ich nur Abfragen auf den Namen, nicht auf den Typ gesetzt!
    Ich bin davon ausgegangen, dass Du die Namen nach einem sinnvoll unterscheidbaren System vergibst.

    Wenn noch Fragen sind zu meiner Datei sind, immer her damit.


    Edit:
    Was noch fehlt:
    - sollen die Labels beim Öffnen der UserForm sichtbar oder unsichtbar sein? Da hattest Du keine Vorgaben gemacht.
     
    Zuletzt bearbeitet: 30. April 2012
    fette Elfe, 30. April 2012
    #8
  9. Beverly
    Beverly Erfahrener User
    Hi Achim,

    Ein Steuerelement auf einem UserForm kann man mit dem Namen direkt ansprechen, also z.B. den Inhalt einer TextBox so:

    Code:
    MsgBox Me.Controls("TextBox1")
    Für ein ActiveX-Steuerlement im Tabellenblatt würde der Code dann so lauten:

    Code:
    MsgBox ActiveSheet.OLEObjects("TextBox1").Object.Value
    Bis später,
    Karin
     
    Beverly, 1. Mai 2012
    #9
  10. fette Elfe Erfahrener User
    fette Elfe, 1. Mai 2012
    #10
  11. Beverly
    Beverly Erfahrener User
    Hi Achim,

    die ganzen Variablen kann man sich sparen, wenn man die benötigten Informationen direkt an die ausgelagerte Sub übergibt:

    Code:
    '******************************
    '****** alle Checkboxen *******
    '******************************
    Private Sub CheckBox1_Click()
        CheckBoxPingPong "CheckBox1", "TextBox1", "LabelOK1", "LabelFault1"
    End Sub
    
    Private Sub CheckBox2_Click()
        CheckBoxPingPong "CheckBox2", "TextBox2", "LabelOK2", "LabelFault2"
    End Sub
    
    '******************************
    '******* alle Textboxen *******
    '******************************
    Private Sub TextBox1_Change()
        CheckBoxPingPong "CheckBox1", "TextBox1", "LabelOK1", "LabelFault1"
    End Sub
    
    Private Sub TextBox2_Change()
        CheckBoxPingPong "CheckBox2", "TextBox2", "LabelOK2", "LabelFault2"
    End Sub
    
    '******************************
    '***** ausgelagerter Code *****
    '******************************
    Public Sub CheckBoxPingPong(strCheckBox As String, strTextBox As String, strLabelOK As String, strLabelFault As String)
        
     'Label sichtbar/unsichtbar gemäß der 4 Unterscheidungen der Werte der CBO und TXT
        If Me.Controls(strCheckBox) And Me.Controls(strTextBox) <> "" Then
            Me.Controls(strLabelOK).Visible = True
            Me.Controls(strLabelFault).Visible = False
        ElseIf Me.Controls(strCheckBox) And Me.Controls(strTextBox) = "" Then
            Me.Controls(strLabelOK).Visible = False
            Me.Controls(strLabelFault).Visible = True
        ElseIf Me.Controls(strCheckBox) = False And Me.Controls(strTextBox) <> "" Then
            Me.Controls(strLabelOK).Visible = False
            Me.Controls(strLabelFault).Visible = True
        ElseIf Me.Controls(strCheckBox) = False And Me.Controls(strTextBox) = "" Then
            Me.Controls(strLabelOK).Visible = False
            Me.Controls(strLabelFault).Visible = True
        End If
    End Sub
    
    Wobei man den ausgelagerten Code m.E. noch etwas vereinfachen könnte:

    Code:
    '******************************
    '***** ausgelagerter Code *****
    '******************************
    Public Sub CheckBoxPingPong(strCheckBox As String, strTextBox As String, strLabelOK As String, strLabelFault As String)
       'Label sichtbar/unsichtbar gemäß der Werte der CBO und TXT
       Me.Controls(strLabelOK).Visible = Me.Controls(strCheckBox) And Me.Controls(strTextBox) <> ""
       Me.Controls(strLabelFault).Visible = (Me.Controls(strCheckBox) And Me.Controls(strTextBox) = "") Or _
          (Me.Controls(strCheckBox) = False And Me.Controls(strTextBox) <> "")
    End Sub
    
    Bis später,
    Karin
     
    Beverly, 1. Mai 2012
    #11
  12. fette Elfe Erfahrener User
    Hallo Karin,
    danke für den Tipp. Wie üblich konnte ich wieder was von Dir lernen.
    Allerdings müssen dann in jeder Ereignisprozedur die ganzen übergebenen Controll-Namen angepasst werden.
    Und ich hatte Sven so verstanden, dass er eben genau soetwas nicht möchte, weil es ihm zuviel Arbeit wäre...

    Naja... mal abwarten was der TO zu all dem meint.
     
    fette Elfe, 1. Mai 2012
    #12
  13. sven78hh
    sven78hh Erfahrener User

    VBA Formulareingaben prüfen

    Hallo zusammen,

    ich bin ganz platt, wie viel arbeit ihr euch macht.
    Ich wünschte meine Arbeitskollegen wären auch so fleißig sein ;-)
    Heute mittag werde ich mich an mein Formular machen und versuchen eure Lösungen ein zu bauen.

    Erst mal vielen Dank!
    Ich werde berichtien.

    Gruß Sven
     
    sven78hh, 1. Mai 2012
    #13
  14. Beverly
    Beverly Erfahrener User
    Hi Achim,

    wenn ich Sven richtig verstanden hab, dann ging es ihm generell darum, den Code nur einmalig und nicht für jede Check- bzw. TextBox schreiben zu müssen - und das ist halt nur mit Klassenprogrammierung möglich.

    Bei der von dir vorgestellten Nicht-Klassen-Variante musst du (ähnlich wie bei meiner Nicht-Klassen-Variante) ja ebenfalls Inhalte von Variablen (bei dir: Nummerierung des Elements) übergeben und setzt sie dann im ausgelagerten Code mit dem Steuerelement-Namen wieder zusammen. Falls die Bezeichnung der Steuerelemente aber nicht fortlaufend nummeriert ist, gibt es dann ein Problem. Bei direkter Übergabe der Steuerelement-Namen ist man von dieser Nummerierung unabhängig und die TextBoxen/CheckBoxen/Label können dann z.B. auch A, B, C usw. heißen.
    Falls die Steuerelemente tatsächlich eine fortlaufend Nummerierung haben, kann man den Code trotzdem noch etwas vereinfachen, indem man die Nummer in die Tag-Eigenschaft sowohl der TextBoxen als auch der CheckBoxen schreibt - dann kann man diese der ausgelagerten Sub übergeben, benötigt keine weiteren Variablen und die Codezeile für die Übergabe wäre dann auch kürzer:

    Code:
    '******************************
    '****** alle Checkboxen *******
    '******************************
    Private Sub CheckBox1_Click()
        CheckBoxPingPong CheckBox1.Tag
    End Sub
    
    Private Sub CheckBox2_Click()
        CheckBoxPingPong CheckBox2.Tag
    End Sub
    
    '******************************
    '******* alle Textboxen *******
    '******************************
    Private Sub TextBox1_Change()
        CheckBoxPingPong TextBox1.Tag
    End Sub
    
    Private Sub TextBox2_Change()
        CheckBoxPingPong TextBox2.Tag
    End Sub
    
    
    '******************************
    '***** ausgelagerter Code *****
    '******************************
    Public Sub CheckBoxPingPong(strNummer As String)
       Me.Controls("LabelOK" & strNummer).Visible = Me.Controls("CheckBox" & strNummer) And Me.Controls("TextBox" & strNummer) <> ""
       Me.Controls("LabelFault" & strNummer).Visible = (Me.Controls("CheckBox" & strNummer) And Me.Controls("TextBox" & strNummer) = "") Or _
          (Me.Controls("CheckBox" & strNummer) = False And Me.Controls("TextBox" & strNummer) <> "") Or _
          (Me.Controls("CheckBox" & strNummer) = False And Me.Controls("TextBox" & strNummer) = "")
    End Sub
    
    Ich habe übrigens noch einen Fehler im ausgelagerten Code meines vorhergehenden Beitrags gefunden - da fehlt der 3. Vergleich. Das habe ich hier natürlich gleich mit eingearbeitet.



    Hi Sven,

    es ist immer so, dass man als Programmierer daran interessiert ist, Code zu optimieren und da Achim und ich uns hier sozusagen die "Bälle zuwerfen", kommt man nicht umhin, sich immer intensiver mit der Problematik zu beschäftigen und nach besseren Lösungen zu suchen. Und da jeder andere bzw. unterschiedliche Erfahrungen, Kenntnisse, Ideen und Sichtweisen hat, lernt man auf diese Weise immer wieder voneinander - und genau das macht Spaß. Natürlich soll in erster Linie der Fragesteller davon profitieren und ich hoffe, dass das bei dir zumindest ein wenig der Fall ist. :)

    Bis später,
    Karin
     
    Beverly, 1. Mai 2012
    #14
  15. sven78hh
    sven78hh Erfahrener User
    Hi,

    da meine Textfelder und Checkboxen bereits durchnummeriert sind und der Anfang der Namen je Gruppe immer gleich ist, werde ich jetzt versuchen eure Vorschläge in meinem Formular um zu setzen.
    So ganz hab ioch das alles noch nicht verstanden, aber der Ahaeffekt wird schon noch kommen...
    Ich werde berichten :-)

    Gruß
    Sven
     
    sven78hh, 1. Mai 2012
    #15
Thema:

VBA Formulareingaben prüfen

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

  2. 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...
  3. 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....
  4. 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...
  5. Laufzeitfehler 9 VBA

    in Microsoft Excel Hilfe
    Laufzeitfehler 9 VBA: Nschdem ich die Office Version von 2010 auf 2019 aktualisiert habe wird mir der Laufzeitfehler 9 ausgegeben. Das ist der Code Sub FiberCollect() Dim NumRows As Long 'letzte celle Dim Counter As...
  6. Excel VBA Spalten mit Ordnerinhalt vergleichen

    in Microsoft Excel Hilfe
    Excel VBA Spalten mit Ordnerinhalt vergleichen: Hallo, Bin ehr Excel VBA Neuling, Würde aber gerne in einer bestehender Tabelle die Auflistung der Ordner mit dem eigentlichen Stand in den besagten Ordner kontrollieren. Also in der Spalte Q10...
  7. VBA - letzte nicht-leere Spalte

    in Microsoft Excel Hilfe
    VBA - letzte nicht-leere Spalte: Moin, liebe VBA-Spezis, mit Cells(99, Columns.Count).End(xlToLeft).Column bestimme ich die Spaltenzahl der letzten benutzten Zelle in Zeile 99. Soweit, so klar. Nun habe ich aber Formeln in...
  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