Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
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
Inhaltsverzeichnis

Forschung an Hardcore VBA mit Timer bis xl2003

Forschung an Hardcore VBA mit Timer bis xl2003
Tino
Hallo,
mich würde mal interessieren ob jemand eine Lösung kennt,
dass zucken bis Version xl2003 zu verhindern.
In diesem Beispiel
https://www.herber.de/bbs/user/64687.xls
wird ein Timer alle 200 Millisekunden ausgelöst um zu Prüfen ob in einem Textfeld ein x steht und
wenn ja wird dieses Feld eingefärbt.
Unter xl2007 läuft es perfekt, kein zucken kein wackeln.
In xl2003 ist es schrecklich, ständiges zuckt die Maus.
Application.ScreenUpdating bringt nichts, auch dass auslagern als Addin hat nicht nichts gebracht.
PS: ich möchte keine Lösung wie, verwende doch eine Textbox oder so,
es geht wirklich um die Sache wie im Beispiel.
Gruß Tino

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
wenn nötig dann ...
26.09.2009 10:04:11
Erich
Hi Tino,
so flackerts bei mir schon erheblich weniger:

Sub Check_TextFelder()
Dim ciSoll As XlColorIndex
On Error Resume Next
With Tabelle1
With .Shapes("Text Box 1").DrawingObject 'rot
If LCase(.Text) = "x" Then ciSoll = 3 Else ciSoll = xlColorIndexNone
If .Interior.ColorIndex  ciSoll Then .Interior.ColorIndex = ciSoll
End With
With .Shapes("Text Box 2").DrawingObject 'gelb
If LCase(.Text) = "x" Then ciSoll = 6 Else ciSoll = xlColorIndexNone
If .Interior.ColorIndex  ciSoll Then .Interior.ColorIndex = ciSoll
End With
With .Shapes("Text Box 3").DrawingObject 'grün
If LCase(.Text) = "x" Then ciSoll = 4 Else ciSoll = xlColorIndexNone
If .Interior.ColorIndex  ciSoll Then .Interior.ColorIndex = ciSoll
End With
End With
End Sub
(nach dem Motto: "Tu nur etwas wenn es sein muss.")
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
danke Erich
26.09.2009 12:00:42
Tino
Hallo,
schon mal nicht schlecht eine sehr gute Idee.
Habe allerdings noch ein anderes Problem festgestellt, dass sich unter xl2007 nicht darstellt.
Ich kann den Text nicht mehr an einer beliebigen stelle entfernen oder bearbeiten, sobald ich etwas markieren will wird durch anspringen des VBA Codes die Markierung wieder aufgehoben,
unter xl2007 ist dies nicht so.
Liegt aber nicht daran das ein Code verarbeitet wird, sondern eher durchs ansprechen des Textfeldes,
wobei scheinbar auch egal ist ob ich nur den Namen abfrage.
Habe dies so gelöst, dass erst nach dem verlassen die Farbe eingestellt wird.
Sub Check_TextFelder()
Dim ciSoll As XlColorIndex
On Error Resume Next
If TypeName(Selection) = "TextBox" Then Exit Sub
With Tabelle1
With .Shapes("Text Box 1").DrawingObject 'rot
If LCase(.Text) = "x" Then ciSoll = 3 Else ciSoll = xlColorIndexNone
If .Interior.ColorIndex  ciSoll Then .Interior.ColorIndex = ciSoll
End With
With .Shapes("Text Box 2").DrawingObject 'gelb
If LCase(.Text) = "x" Then ciSoll = 6 Else ciSoll = xlColorIndexNone
If .Interior.ColorIndex  ciSoll Then .Interior.ColorIndex = ciSoll
End With
With .Shapes("Text Box 3").DrawingObject 'grün
If LCase(.Text) = "x" Then ciSoll = 4 Else ciSoll = xlColorIndexNone
If .Interior.ColorIndex  ciSoll Then .Interior.ColorIndex = ciSoll
End With
End With
End Sub
Frage erst mal erledigt.
Gruß Tino
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige