Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

prüfen ob uf-textbox wert geändert wurde

Forumthread: prüfen ob uf-textbox wert geändert wurde

prüfen ob uf-textbox wert geändert wurde
12.04.2008 13:59:00
Wolfgang
Hallo Excel Kenner,
ich habe eine UF mit Textboxen u. ComboBoxen, mit deren Hilfe ich per Knopfdruck eine Tabelleliste fülle und auch ändere.
Meine Frage lautet:
Kann ich, wenn ich ein Datensatz aus der Tabelle in die UF aufgerufen habe, prüfen ob eine Änderung der Daten in der UF vorgenommen wurde.
Bevor der nächste Datensatz über eine ComboBox oder ein Drehfeld in die UF aufgerufen wird .
Damit die Änderung per Knopfdruck auch in der Tabellenliste noch geändert werden können.
Und nicht verloren gehen.
Danke und Gruß Wolfgang

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: prüfen ob uf-textbox wert geändert wurde
12.04.2008 14:11:00
Heinz
Hi,
was soll überprüft werden, die werte in den Textboxen? Falls ja, diese haben ein Change-Ereignis,
das du z.B. nutzen kannst, um eine Variable zu ändern.
mfg Heinz

AW: prüfen ob uf-textbox wert geändert wurde
12.04.2008 14:43:26
Wolfgang
Hallo Heinz,
ich möchte eigentlich nur, dass wenn eine Änderung in den Texboxen der UF vorgenommen wurde, die über eine Abfrage auch in der Tabelle gespeichert werden kann wenn denn die Änderung in die Tabelle übernommen werden sollen.
Bevor diese Änderung durch einlesen des nächsten Datensatzes verloren gehen.
ich versuche es über die Tag-Eigenschaft der Textboxen, ComboBoxen indem ich den Wert der Tag-Eigenschaft ändere wenn die Textbox oder die Combobox den Setfocus erhielt.
Es würde reichen wenn festgestellt werden könnte das eine Textbox, ComboBox den Focus erhielt und so eine Änderung möglich gewesen wäre. Um sicher zustellen das nach einer Abfrage die Änderung gespeichert werden.
Zu Daniel
Die ganzen Daten in Variablen einzulesen scheint kaum möglich, da es zu viele Textboxen u. ComboBoxen sind.
Gruß Wolfgang

Anzeige
AW: prüfen ob uf-textbox wert geändert wurde
12.04.2008 15:07:29
Matthias
Hallo Wolfgang
wie schon Daniel schrieb in einer Variable den Zustand speichern.
dann vergleiche .Tag mit .Value
dann setz eine Variable auf z.B. True hier im Bsp. Tx1(Boolean)
hier ein Beispiel mit einer Textbox

Option Explicit
Private Sub CommandButton1_Click()
Dim tx1 As Boolean
If Me.TextBox1.Value = Me.TextBox1.Tag Then tx1 = True
If tx1 = True Then
MsgBox "nix geändert"
Else
MsgBox "Box1 wurde geändert!"
End If
End Sub


Userbild
wenn Du nun die Daten der Textbox in die Tabelle überträgst
setze die .Tag Eigenschaft gleich der .Value-Eigenschaft
und die Variable(Tx1) wieder auf False.
Gruß Matthias

Anzeige
AW: prüfen ob uf-textbox wert geändert wurde
12.04.2008 15:25:32
Wolfgang
Hallo Matthias,
ich werde es ausprobieren.
Sieht auf jedenfall gut aus und dürfte dann wohl auch so klappen.
Danke für Deine Mühe und Zeit die geopfert hast.
Gruß Wolfgang

AW: prüfen ob uf-textbox wert geändert wurde
12.04.2008 14:22:06
Daniel
Hi
speichere doch beim Aufrufen der Daten diese zusätzlich in Variablen, dann kannst du jederzeit diese mit den Textboxen vergleichen und feststellen, ob ein Wert gändert wurde.
Gruß, Daniel

Anzeige
AW: prüfen ob uf-textbox wert geändert wurde
12.04.2008 19:01:00
ralf
hallo heinz,daniel,matthias,wolfgang,forum
bin auch mit textboxen zugange, ist zwar nicht das problem was heinz hat
aber gibt es eine möglichkeit ,lege meine werte in tabelle1 ab , wenn sich der wert
in tabelle 1 ,a1 ändert dann in der textbox übernommen wird , ohne das ich über
command button gehe . hoffr das heinz mir nicht böse ist das ich mich eingeklingt
habe
gruß
ralf

Anzeige
AW: prüfen ob uf-textbox wert geändert wurde
12.04.2008 19:22:25
Matthias
Hallo
Es gibt die ControlCource-Eigenschaft für die Textbox
Wenn Du die mit z.B. A1 verlinkst, dann wird jede Änderung der Zelle A1 in der Textbox übernommen.
Solltest Du es in einem UserForm benutzen, dann setze zum Testen die Eigenschaft Modal auf False.
und schreibe einen Text in A1
Userbild
Gruß Matthias
Anzeige
;
Anzeige

Infobox / Tutorial

Änderungen in Excel UserForms erkennen und speichern


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Füge ein UserForm hinzu: Klicke mit der rechten Maustaste auf dein Projekt, wähle Einfügen und dann UserForm.

  3. Füge TextBoxen und ComboBoxen hinzu: Ziehe die gewünschten Steuerelemente auf das UserForm.

  4. Verwende das Change-Ereignis: Füge in der Code-Ansicht für jede TextBox und ComboBox ein Change-Ereignis hinzu. Beispiel für eine TextBox:

    Private Sub TextBox1_Change()
       Me.TextBox1.Tag = Me.TextBox1.Value
    End Sub
  5. Überprüfe den Wert: Verwende beim Speichern der Daten den folgenden Code, um zu prüfen, ob sich der Wert geändert hat:

    Private Sub CommandButton1_Click()
       If Me.TextBox1.Value <> Me.TextBox1.Tag Then
           MsgBox "Box1 wurde geändert!"
           ' Hier kannst Du den Code zum Speichern in die Tabelle einfügen
           Me.TextBox1.Tag = Me.TextBox1.Value ' Tag aktualisieren
       Else
           MsgBox "nix geändert"
       End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Keine Änderung wird erkannt.

    • Lösung: Stelle sicher, dass Du die Tag-Eigenschaft der TextBox korrekt einsetzt. Setze sie beim ersten Aufruf oder beim Laden der Daten.
  • Fehler: Der Code wird nicht ausgeführt.

    • Lösung: Überprüfe, ob das UserForm richtig initialisiert ist und ob die TextBoxen und ComboBoxen korrekt benannt sind.

Alternative Methoden

Eine alternative Methode zur Überwachung von Änderungen in TextBoxen ist die Verwendung der ControlSource-Eigenschaft. Damit kannst Du eine TextBox direkt mit einer Zelle in einem Arbeitsblatt verknüpfen. Jede Änderung in der Zelle wird automatisch in der TextBox angezeigt.

Beispiel:

  1. Wähle die TextBox aus.
  2. Gehe zu den Eigenschaften und setze ControlSource auf Sheet1!A1.

Praktische Beispiele

Hier ist ein einfaches Beispiel, um zu zeigen, wie Du Werte aus einer TextBox in eine Tabelle überträgst:

Private Sub CommandButton1_Click()
    Dim zeile As Integer
    zeile = Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row + 1
    Worksheets("Tabelle1").Cells(zeile, 1).Value = Me.TextBox1.Value
    Me.TextBox1.Tag = Me.TextBox1.Value ' Tag aktualisieren
End Sub

In diesem Beispiel wird der Wert der TextBox in die erste leere Zeile der ersten Spalte von Tabelle1 übertragen.


Tipps für Profis

  • Verwende Variablen: Speichere den Zustand der TextBoxen in Variablen, um die Vergleichslogik zu vereinfachen.

  • Nutze das BeforeUpdate-Ereignis: Damit kannst Du Änderungen noch vor der Aktualisierung des Controls prüfen.

  • Vermeide redundante Abfragen: Wenn Du mehrere Controls hast, überlege, ob Du eine Schleife verwenden kannst, um die Werte zu überprüfen.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass alle Änderungen gespeichert werden?
Setze die Tag-Eigenschaft jeder TextBox und ComboBox immer nach dem Speichern der Daten zurück.

2. Kann ich die Änderungen in einer Datei protokollieren?
Ja, Du kannst die Änderungen in einer neuen Excel-Tabelle oder in einer Textdatei speichern, indem Du die entsprechenden Dateifunktionen in VBA verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige