Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
300to304
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
300to304
300to304
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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
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

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige