Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
656to660
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
656to660
656to660
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

automatische Erkenn. b. Datenänderung in userform

automatische Erkenn. b. Datenänderung in userform
29.08.2005 10:06:54
Helmut
Habe folgendes Problem:
Habe eine Userform mit ca. 100 Textboxen (Mitgliederverwaltung) über eine multipage abgebildet. Daten werden aus Zellen der Arbeitsmappe über eine Routine (userform.controls.name) über VBA den Textboxen zugeordnet und ggfs. auch gelöscht.
Mein konkrtes Problem sieht so aus:
Nachdem ich einen Datensatz (eine Zeile beinhaltet alle Daten für ein Mitglied) in die Userform (Multipage) geladen habe, möchte ich einige Daten in der Multipage verändern (z.B. neue Telefonnummer). Bevor ich nun eine neue Aktion über Button auslöse (z.B. Suchen nach einem anderen Mitgliedsnamen)möchte ich einen Automatismus (so wie auch in Excel) einbauen, indem ein Hinweis auf die durchgeführte Datenänderung vor der neuen Aktion "suchen" den Nutzer der Anwendung zum Speichern der geänderten Daten erinnert bzw. auffordert. Es soll dieser Hinweis nur erscheinen, wenn tatsächlich eine Veränderung der Textboxinhalte durch den Nutzer erfolgt ist (und nur dann!).
Über den Befehl "change" ist leider keine richtige Auswertung der Datenänderung machbar, da bereits das Befüllen der TB`s eine "Change" auslöst.
Wer hat hierzu eine Idee?!
Vorteilhaft wäre eine Routine, ich möchte verhindern, dass in jeder TB (über 100!) ein Code abgelegt werden muss.
Danke für Eure Unterstützung!

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

Betreff
Datum
Anwender
Anzeige
AW: automatische Erkenn. b. Datenänderung in userform
29.08.2005 10:16:59
otto
Hi,
du könntest bei der Initialize der Userform jeder textbox eine Variable zuweisen, die dann bei Klick auf die neue Suche verglichen werden.
Bsp.

Private Sub Userform Initialize()
V1=TextBox1.Text
End Sub


Private Sub Neue_Aktion_Click()
If TextBox1.Text<>V1 Then
MsgBox"Daten haben sich geändert, bitte speichern";0;"Achtung geänderte daten !"
End If
End Sub

Viel spaß beim basteln
otto
AW: automatische Erkenn. b. Datenänderung in userform
29.08.2005 11:26:44
Helmut
Hallo Otto,
vielen Dank für die schnelle Antwort. Leider komme ich mit Deinem Vorschlag nicht weiter. Wenn ich bei der Initialisierung eine Variable in textbox.text eingeben, ist diese bei der Füllung mit Daten über VBA (aus der Excel Liste) aus .text mit den neuen (aber noch nicht geänderten) Daten überschrieben.
Anders formuliert:
Werden die Textboxen aufgrund meiner Anweisungen (Lade Daten aus Excel Tabelle von bereits geführten Mitglied in Userform.Multipage) über VBA mit den Daten gefüllt, ist noch keine Veränderung der tatsächlich in der Excel Tabelle gespeicherten Daten durch den User erfolgt. Eine Abänderung erfolgt erst wenn ich als Benutzer mit der Maus (oder Tastatur) eine Textbox auswähle (in der jetzt noch die Daten aus der Excel Tabelle vorhanden sind)und dort einen anderen Wert eintrage. Würde ich jetzt eine Speicherung (die Werte aus den Textboxen in die Zellen der Exceltabelle) nicht durchführen, sind die geänderten Werte in der Textbox nicht mehr vorhanden.
Wichtiges Kriterium:
Ich möchte einen Speicherhinweis in Form einer MsgBox nur dann, wenn ich als User Daten in der Userform verändere und nicht wenn es von vba aus geschieht.
In Excel oder Word geht es eigentlich genauso. Leider weiß ich nicht wie es realisiert wird. Öffne ich eine Datei und schließe diese wieder (ich habe keine Änderung vorgenommen!) geht das ohne Sicherheitsabfrage. Habe ich aber eine Änderung in dem Dokument gemacht (es reicht eine Formatänderung) werde ich von Excel oder Word abgefragt, ob ich diese Änderung speichern möchte. Und genau diese Funktion suche ich für meine VBA Anwendung. Ich vermute, das irgendwo eine Variable abgefragt wird, die bei jeglicher Veränderung über Tatstatur oder Maus gesetzt wird. Nur welche?
Anzeige
AW: automatische Erkenn. b. Datenänderung in userform
29.08.2005 12:05:30
otto
Hallo,
dann wirst du das wahrscheinlich mit dem Exit-Ereignis lösen müssen, das bedeutet natürlich einen Code für jede Box, was du eigentlich nicht wolltest.
wenn mir noch was besseres einfällt melde ich mich.
otto
AW: automatische Erkenn. b. Datenänderung in userform
29.08.2005 13:12:35
Helmut
Hallo Otto,
ich denke, das ich dieses Problem über eine Abfrage einer gesetzten Variabel nach Tastendruck auf der Tastatur rauslesen kann. Irgendwo wird doch sicherlich ein interrupt gesetzt, wenn ich die Tastatur betätige?!! Eine Änderung eines Textes in einer Textbox setzt die Bedienung (zumindest in meinem Fall) der Tatstatur voraus. Wo finde ich diese Variable oder interrupt?
Anzeige
AW: automatische Erkenn. b. Datenänderung in userform
29.08.2005 12:10:06
Leo
Hi,
einfache Möglichkeit, verkette beim Aktivieren der Userform alle Zellinhalte in einer
Variablen, beim Schließen oder Ok-Button erneut in eine zweiten Variablen und vergleich
diese.
mfg Leo
AW: automatische Erkenn. b. Datenänderung in userform
29.08.2005 13:19:12
Helmut
Hallo Leo,
ich glaube es hört sich sehr gut an was Du da als Lösungsansatz gebracht hast. Ich werde heute mal testen ob ich das so hinkriege. Ich sehe lediglich ein Zeitproblem, aber sonst ist der Hinweis nicht verkehrt!
Hast Du eventuell eine Idee wie man eine Tastaturabfrage (Interrupt) (Tastatur wurde betätigt) irgendwo auslesen kann? Ich könnte dann eine entsprechende Abfrage schneller durchführen?
Trotzdem erstmal schönen Dank!
Anzeige
AW: automatische Erkenn. b. Datenänderung in userform
30.08.2005 08:42:30
Helmut
Hallo Leo,
habe gestern abend Deinen Lösungsansatz umgesetzt. Ich möchte mich recht herzlich bei Dir bedanken!! Funktioniert wunderbar! Alleine hätte ich wahrscheinlich in alle Richtungen gedacht nur nicht in diese (oder vielleicht erst recht spät).
Gruß,
Helmut Palmen
Ps.: Habe noch ein anderes Problem (siehe heute; vielleicht hast Du da auch eine Idee zu?)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige