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

UserForm regelmäßig mit Tabellenwerten füllen

Forumthread: UserForm regelmäßig mit Tabellenwerten füllen

UserForm regelmäßig mit Tabellenwerten füllen
27.08.2003 11:19:47
John
Hi,

ist es möglich, das Textfeld einer Userform im 5-Sekunden-Rhythmus automatisch mit dem Inhalt einer Zelle zu füllen?
Im konkreten Fall enthält meine Userform ein Textfeld namens "tester", das alle 5 Sekunden mit dem Wert der Zelle A1 überschrieben werden soll.
Ich hab's mit folgendem Code versucht, der aber leider nicht funktioniert:


Private Sub UserForm_Initialize()
Call nächsteaktualisierung
End Sub

Sub nächsteaktualisierung()
Dim nächstaktual
nächstaktual = Now + TimeValue("00:00:05")
Application.OnTime earliesttime:=nächstaktual, procedure:="aktualisierung", schedule:=True
End Sub

Sub aktualisierung()
tester = Range("A1").Value
Call nächsteaktualisierung
End Sub

Vielen Dank im Voraus!
Gruß,

John
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: UserForm regelmäßig mit Tabellenwerten füllen
27.08.2003 13:00:09
ChrisL
Hi John

Etwa so...

' Standardmodul

Option Explicit

Public Const gsMacro As String = "UpdateClock"
Public gdNextTime As Double

Sub StartClock()
Dim iIntervall As Integer
gdNextTime = Now + TimeSerial(0, 0, 5)
Application.OnTime earliesttime:=gdNextTime, _
procedure:=gsMacro, schedule:=True
End Sub


Sub UpdateClock()
UserForm1.TextBox1 = Range("A1")
Call StartClock
End Sub


Sub StopClock()
On Error Resume Next
Application.OnTime earliesttime:=gdNextTime, _
procedure:=gsMacro, schedule:=False
End Sub

' Klassenmodul

Option Explicit


Private Sub UserForm_Activate()
TextBox1 = Range("A1")
Call StartClock
End Sub



Private Sub UserForm_Deactivate()
Call StopClock
End Sub



Private Sub UserForm_Initialize()
TextBox1 = Range("A1")
Call StartClock
End Sub



Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Call StopClock
End Sub

Gruss
Chris
Anzeige
AW: UserForm regelmäßig mit Tabellenwerten füllen
27.08.2003 13:26:25
John
Hallo Chris,
danke für deine Antwort. Diese Lösung funktioniert aber nur im ersten Durchgang, d.h. die Textbox wird einmal mit dem Wert gefüllt und dann nicht mehr aktualisiert - seblst wenn sich der Wert in der Zelle A1 ändert, werden diese Änderungen nicht in die Textbox mit übernpmmen...
Gruß,

John
Anzeige
AW: UserForm regelmäßig mit Tabellenwerten füllen
27.08.2003 17:26:54
ChrisL
Hi John

Dies ist nicht richtig, das Update läuft in einer Endlosschlaufe bis das UF geschlossen wird.

Nur frage ich mich, wie die Werte in die Tabelle gelangen, während das UF offen ist.

Gruss
Chris
AW: UserForm regelmäßig mit Tabellenwerten füllen
27.08.2003 18:00:35
John
Hallo Chris,

ich versteh's auch nicht, laut deinem Programmcode müßte es eigentlich funktionieren, und scheinbar wird auch alle 5 Sekunden irgendein vorgang in die Wege geleitet (für den Bruchteil einer Sek. wird der Mauszeiger alle 5 Sek. zur Sanduhr), aber trotzdem wird der Inhalt der Userform nicht upgedatet.
Zu Deiner Frage: Ich habe die Userform mit einem kleinen Trick (Herber sei Dank) dazu gebracht, geöffnet zu bleiben und parallel trotzdem die Bearbeitung des Tabellenblatts zuzulassen:

Option Explicit
' von Michael Schwimmer
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function EnableWindow Lib "user32" _
(ByVal hwnd As Long, ByVal bEnable As Long) As Long

Private Sub UserForm_Activate()
Dim hwndXL&
hwndXL = FindWindow("XLMAIN", Application.Caption)
If hwndXL <> 0 Then
EnableWindow hwndXL, 1
Application.CellDragAndDrop = False
End If
End Sub


Private Sub UserForm_QueryClose(Cancel As Integer, _
CloseMode As Integer)
Application.CellDragAndDrop = True
End Sub


Deinen Code habe ich dann an diese Makros angepaßt. Vielleicht habe ich, als ich deinen Code in mein System übernommen und an meine Erfordernisse angepasst habe, irgendwo einen Fehler gemacht, aber ich wüßte nicht welchen...
Trotzdem vielen Dank für die Hilfe!
Gruß,

John
Anzeige
OFFEN
27.08.2003 18:46:40
ChrisL
Hi John

Ich vermute, dass das gleichzeitige Anzeigen des UF und der Tabelle zum Konflikt führt. Vermutlich verliert das UF den Fokus oder so.

Bin ehrlich gesagt überfragt, aber evtl. könntest eine Alternative zum UF verwenden. Meine damit die Eingabemaske direkt in der Tabelle zu machen.

Nichts für Ungut
Chris
Anzeige
AW: OFFEN
28.08.2003 10:51:35
ChrisL
Hi John

Ist mir doch noch etwas in den Sinn gekommen. Anstatt mit der OnTime Methode könntest du auch versuchen das UF mittels Worksheet_Change Ereignis zu bearbeiten.

Gruss
Chris
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige