Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
308to312
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
308to312
308to312
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textbox_Change()

Textbox_Change()
18.09.2003 11:13:08
Jörg Schreiber
Wie kann ich eine Routine schreiben, die für
alle im Worksheet vorkommenden Textboxes gilt:

"bei Änderung des Inhalts ergänze aktuelles Datum
(in blau) beim Inhalt der Textbox, wo die Änderung
vorgenommen wurde."

Mit TextboxX_Change() kann ich nur die Textbox X
ansprechen, sprich ich muesst fuer alle Textboxen
dieselbe Sub einschluesseln - klar, funktioniert
prima, aber geht bestimmt auch eleganter. Ausserdem
hab ich so das Problem, dass ich jede weitere Text-
box manuell im Code ergaenzen muss - genau das sollte
aber vermieden werden. Gibt es eine Art

"For each Textbox_Change in Worksheet - Anweisung?"
Wo plaziere ich die Sub? Unter Worksheet_Change werden
die Objekte-Änderungen wohl kaum erfasst, oder?

Merci schon mal
Joerg

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox_Change()
18.09.2003 11:46:21
A. Schnell
Hallo Joerg,

die

Sub plazierst Du in ein Modul. Dann kannst Du mit dem TextBox_Change aus jedem Sheet auf die 

Sub zugreifen.
z.B.

Sub TextBox1_Change()
Call Change_MyBox
End Sub


ins Modul:

Sub Change_MyBox()
End Sub


Gruß
Anton
AW: Textbox_Change()
18.09.2003 12:07:45
Jörg Schreiber
klar, so habe ich's ja bereits vorgeschlagen. ich habe
aber momentan 11 von der Funktion her gleiche TextBoxen
und mit Deiner/unserer Methode muss ich dann ja 11 mal
jede TextBox explizit an die Sub Change_MyBox verweisen.
Das sieht mir verdammt aufwendig aus und zudem:

was mache ich, wenn der Andwender eine 12. Box anlegt - die
soll dann ja auch reagieren - jedes Mal den Code aendern?
Das halte ich nicht fuer elegant.

Trotzdem danke - ich hoffe, das Problem ist jetzt klarer...
Anzeige
AW: Textbox_Change()
18.09.2003 12:53:27
GerdW
Du brauchst ein Klassenmodul, in dem das Change- Ereignis für
alle Checkboxen gekapselt ist.

Gerd
AW: Textbox_Change()
18.09.2003 17:12:27
Jörg Schreiber
hm, hatte ich geschrieben "VBA gut"?
sei es drum - kannst du mir das ein wenig ausfuehren,
denn an Klassen habe ich mich bisher noch nicht dran
gewagt. Wie zieht wenn man denn sowas auf? Ich sitze
vor einem leeren Klassenmodul-Blatt...und jetzt?

Also, alle in meinem Worksheet vorkommenden Text-
boxen sollen beim verlassen das Datum ergaenzen.
Zu Fuss macht er das schon, sprich bei z.B. der TextBox1
funktioniert das mit dem Ereignis "LostFocus" prima.
Aber halt nur bei der Textbox1. Waere also genial, wenn
Du mir da erste Laufhilfe bei den Klassen geben
koenntest...
Anzeige
AW: Textbox_Change()
18.09.2003 19:56:03
GerdW
Mal ein Beispiel:

In ein Standardmodul:

Option Explicit
Public ctrTB() As New clsControls
Public intTBCount As Integer
Sub setten()
Dim j As Integer
intTBCount = 0
For j = 1 To Sheets(1).OLEObjects.Count
If Sheets(1).OLEObjects(j).ProgId Like "Forms.Text*" Then
intTBCount = intTBCount + 1
ReDim Preserve ctrTB(1 To intTBCount)
Set ctrTB(intTBCount).Textbox = Sheets(1).OLEObjects(j).Object
End If
Next
End Sub


''In ein Klassenmodul, das zwingend den Namen clsControls
''haben muss!!!
''--------------------------------------------------------------
Option Explicit
Public WithEvents Textbox As msforms.Textbox

Private Sub Textbox_Change()
MsgBox Textbox.Name
End Sub


Gerd
Anzeige
AW: Textbox_Change()
19.09.2003 21:26:56
Jörg Schreiber
Sauber, klappt alles Gerd - Merci!

Eine Sache hab ich aber noch. Wenn ich das Textbox_Change()
durch LostFocus ersetze, tut sich nix mehr. Hintergrund ist
der, dass ich allen Textboxes, wenn sie bearbeitet wurden,
automatisch das Datum der Bearbeitung ergaenzen moechte.
Mit Change nervt der mich natuerlich bei jedem Buchstaben.

Das klappt einwandfrei beim normalen TextBox1_LostFocus().
Mit der Klasse sollte das doch auch gehen, oder?

Textbox_Enter() und _Exit(ByVal...) funzen auch nicht, jedoch
auch bei Textbox1_...nicht - der LostFocus scheint's dem zur
Folge zu sein. Hast Du da noch den entscheidenen Tip parat?
Anzeige

179 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige