Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
428to432
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
428to432
428to432
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Änderungen in Multipage

Änderungen in Multipage
13.05.2004 16:16:45
Toni
Hallo VBA'ler
wie kann ich eine Änderung in einer Multipage möglichtst einfach erfassen?
Ich habe auf einer Multipage vier Reiter mit insgesamt etwa 250 Steuerelementen (Textboxen und Optionsbutton).
Ich muss beim Verlassen der Multipage feststellen, ob irgendein Eintrag geändert wurde (Optionsbutton oder Textbox).
Es wäre sehr mühsam, jede Textbox und jeden Optionsbutton einzeln zu überprüfen. Gibt es vielleicht ein Ereignis, dass sich auf die gesamte Multipage bezieht oder eine einfache Schleife über alle Steuerelemente?
Vielleicht kann mir ja jemand helfen.
Ciao
Toni

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Änderungen in Multipage
Kurt
Sind die Textboxen beim Start leer?
Bei den Optionbutton müsstest du beim Start den Istzustand "merken",
damit mit später eine Änderung festgestellt werden kann. Gleiches auch
für Textboxen, falls sie halt nicht leer sind.
Wie soll denn die Meldung erfolgen? Für alle Änderungen oder nur
die erste?
Kurt
AW: Änderungen in Multipage
13.05.2004 17:14:54
toni
Hallo Kurt,
in der Multipage mache ich Einträge, die die Grundlage für eine Berechnung in einem Excelsheet bilden.
Beispiel:
Ich gebe in einer Textbox der Multipage, ein wieviele Kühe ein Bauer besitzt. Per Commandbutton gelange ich dann auf ein Tabellenblatt.
Im Worksheet_Activate dieses Tabellenblattes verwende ich diesen Wert. Unter anderem belege ich Zellen mit bestimmten Werten vor, die der Anwender allerdings überschreiben darf.
Und nun kommt mein Anliegen:
Normalerweise verlässt der Anwender die Multipage nachdem er dort Einträge gemacht hat und der Code im Worksheet_Activate (u.a. Vorbelegung der Werte) läuft wie gewünscht ab.
Nun kann es aber sein, dass der Anwender nur auf die Multipage wechselt um etwas nachzuschauen.
Wenn er dann wieder auf das Tabellenblatt wechselt sollte er es so vorfinden, wie er es verlassen hat.
Das kann ich im Worksheet_Activate stehen , wenn ich weiss, ob in der Multipage etwas verändert wurde (z.B. die Anzahl der Kühe).
Wie gesagt : die Änderungen können in 250 Steuerelementen vorkommen.
Wie frage ich das möglichst einfach ab.
Ciao
Toni
Anzeige
AW: Änderungen in Multipage
Kurt
Du hast leider meine Fragen nicht beantwortet.
Kurt
AW: Änderungen in Multipage
14.05.2004 14:50:39
toni
Hallo Kurt,
folgende Antworten auf Deine Fragen:
Beim Aufruf der Multipage können die Textboxen leer oder gefüllt sein (je nachdem ob der Anwender beim letzten Aufruf etwas eingetragen bzw. verändert hat).
Es ist egal wieviele Änderungen vorgenommen wurden. Entscheident ist nur die Frage 'Wurde geändert oder nicht'.
Ich kann natürlich im Change-Ereignis jeder Textbox (oder Optionsbutton) eine Variable auf true setzen, wenn der Wert geändert wurde. Der Code wird nur recht lang (250 * 3 Zeilen).
Die Frage ist: Geht das auch mit weniger Aufwand?
Anzeige
AW: Änderungen in Multipage
15.05.2004 08:21:49
Georg
Hallo Toni
bei Deinem Level müßtest Du auch wissen das es nicht 750 Zeilen sind sondern nur um die 10 bis 15

Sub Comboboxen_loeschen()
Dim ObCb As Object
For Each ObCb In UserForm1.Controls
If TypeName(ObCb) = "TextBox" Then
' aktion für Textbox
ElseIf TypeName(ObCb) = "OptionButton" Then
' Aktion für OptionsButton
End If
Next ObCb
End Sub

Gruß
AW: Änderungen in Multipage
19.05.2004 16:00:29
toni
Hallo Georg,
ich bin jetzt erst wieder ins Netz gekommen.
Vielleicht sollte ich noch einmal über meine VBA Level nachdenken.
Zunächst könntest Du mir aber noch erklären, wie mir Dein Code weiterhelfen kann.
Wie sieht die 'Aktion für die Textbox' konkret aus?
Ich meine, dass ich mit

Private Sub txtFeld1_Change()
Aenderung = true
End Sub

die Änderung in EINER Textbox dokumentieren kann ( Dreizeiler ).
Wie passe ich Deinen Code an, um 250 Textboxen in 15 Zeilen abzufragen.
PS: ich möchte keine Inhalte von Textboxen löschen, sondern nur abfragen, ob sich Inhalte geändert haben.
Ciao
Toni
Anzeige
AW: Änderungen in Multipage
19.05.2004 16:54:38
Georg
Hallo Toni
meinen Code brauchst Du nur um Deine Bearbeitung ergänzen. Egal ob eine, hundert oder tausend Textboxen.
Ich benutze für solche Sachen die Tag Eigenschaft der Textbox. Hier schreibe ich mir die Zellenbezeichnung hin.
Gruß
AW: Änderungen in Multipage
24.05.2004 11:57:28
toni
Hallo Georg,
irgendwie komme ich nicht weiter. Könnte Deine Hilfe vielleicht etwas konkreter sein?
Mit Deiner Schleife über die Textboxen kann ich schon was anfangen. Z.B.
...
If Typename(ObCb) = "Textbox" then
ObCb.enabled = true oder
ObCb.value = ""
end if
...
ich weiss nur nicht, wie ich in dieser Schleife eine mögliche Änderung in der Textbox dokumentiere.
Wie hilft mir konkret die TAG-Eigenschaft weiter und was meinst Du mit 'Zellbezeichnung'?
Vielleicht nochmal eine Beispiel für mein Problem:
1. Ich öffne eine Userform mit zwei Textboxen über irgendeinen Button
2. Ich trage in die Textbox1 '20' ein, in die andere nichts
3. Über einen 'Speichern' Button (cmdSpeichern) schließe ich die Userform wieder.
4. Das ganze kann sich mehrmals wiederholen (Öffnen, Einträge vornehmen (oder auch nicht!!!), Speichern)
In der Sub cmdSpeichern_Click Prozedur möchte ich abfragen, ob die Textboxeneinträge vor dem Speichern geändert wurden oder nicht.
Mir fällt dazu nur das TextBox_Cange Ereignis ein und das kann ich in dieser Form ja nicht in Deine Schleife einbauen.
Vielleicht kannst Du ja Deinen Code mal um die notwendige Bearbeitung ergänzen.
Ciao
Toni
Anzeige
AW: Änderungen in Multipage
24.05.2004 13:44:07
toni
Hi Georg,
die Mappe ist sehr interessant, löst aber auch mein Problem nicht.
Ich habe mittlerweise herausgefunden, dass ich wohl einen ganz anderen Ansatz wählen muss (Klassen), um meine Aufgabe zu lösen.
P.S.: Urteile doch bitte erst über den VBA-Level von Forumsteilnehmern, wenn Du die Frage verstanden hast.
Ciao
Toni
Anzeige
AW: Änderungen in Multipage
24.05.2004 13:53:21
Georg
Hallo Toni
das hätten wir auch einfacher haben können. Da hätte ich mir ja die Zeit sparen können um die Datei zu suchen.
Du hättest doch einfach schreiben sollen das Du keine Antwort von mir haben willst.
Nur ein Hinweis: Beiträge im Archiv können auf normalen Wege nicht benatwortet werden.
Gruß
AW: Änderungen in Multipage
26.05.2004 09:38:37
toni
Hallo Georg,
wie kommst Du darauf, dass ich keine Antwort von Dir möchte?
Das Problem liegt darin, dass mir Deine Antworten bislang nicht weitergeholfen haben und das wohl deshalb, weil Du meine Frage nicht verstanden hast.
Natürlich kann auch das passieren, aber lass dann doch wenigstens diesen arroganten Spruch von wegen VBA-Level.
Übrigens habe ich bei Hajo eine Beispielmappe gefunden, die mir weiterhelfen könnte:
userform_change.xls(Zusammenfassung von Textboxen zu Klassen)
Das ist allerdings wirklich starker Tobak für mich...
Ciao
Toni
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige