Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro: blinkende Inhalt bzw. Element
#1
Hallo zusammen.

Ich brauche eure Hilfe  Angel

Ich habe eine Makro wo durch ausführen der Zelleninhalt(aktive Zelle) blinken tut. Ich würde gerne diesen Code so umstellen das nicht die aktive Zelle, sondern bestimmte Element blinken tut, z.B. element mit Name: Rohr1. Ich habe zwar probiert selber Code anzupassen wie z.B. With ActiveCell  durch ActiveSheet.Shapes("Rohr1") zu ändern usw.., aber leider komm nicht zum Ergebnis da mir doch noch viele Wissen an VBA fehlen.

Ich bitte um eure Hilfe um mir zu helfen die Code anzupassen. Was ich im Private Sub Blinken() ändern soll?  Huh

Code:
Public Const giIntervall As Integer = 1
Public Const gsMacro As String = "Blinken"
Public gdNextTime As Double

Sub BlinkenEin()
   gdNextTime = Now + TimeSerial(0, 0, giIntervall)
   Application.OnTime earliesttime:=gdNextTime, _
      procedure:=gsMacro, schedule:=True
End Sub

Private Sub Blinken()
   With ActiveCell
      If .Interior.ColorIndex = 6 Then
         .Interior.ColorIndex = 9
         .Font.ColorIndex = 6
      Else
         .Interior.ColorIndex = 6
         .Font.ColorIndex = 9
      End If
   End With
   Call BlinkenEin
End Sub

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

Ich danke euch im Voraus .

Viele Grüße
Andre
Antwortento top
#2
einfach austauschen, schön wärs. 

shape hat nicht die gleichen Eigenschaften wie Range

Deshalb wird interior.color nicht klappen. 

lies mal hier. https://docs.microsoft.com/de-de/office/...shape.fill
Antwortento top
#3
https://youtu.be/dTrL0EHey8k
Schöne Grüße
Berni
Antwortento top
#4
Hallo,

vielen Dank erstmal. Wie ich schon sagte, bin kein Profi - bin eher ganze am Anfang was Makros angeht, aber ich versuche mich schon reinzusteigern! 

Aus diesem Grund habe ich auch hier euch um Hilfe gebetet!

Ich hoffe, dass jemand Zeit findet mich dabei zu unterstützen!  Blush

MfG
Andre
Antwortento top
#5
Auch wir können nicht jede Eigenschaft eines Objektes aus dem Handgelenk schütteln.

Deshalb wäre eine Beispieldatei gut damit die Helfer ihre Codes testen können.
Antwortento top
#6
(04.11.2020, 21:00)ralf_b schrieb: Auch wir können nicht jede Eigenschaft eines Objektes aus dem Handgelenk schütteln.

Deshalb wäre eine Beispieldatei gut damit die Helfer ihre Codes testen können.

Hallo Ralf,

ich habe eine Testdatei erstellt=> mit 2 Button: Blinken-Ein und Blinken-Stop... Es wird immer die Aktive-Zelle geblinkt.. Ich habe noch eine Linie dazugefügt die "Rohr1" heißt. Jetzt möchte ich, dass die "Rohr1"-Leitung blinkt.

Hoffentlich ist jetzt bißchen mehr verständlicher  Angel

Viele Grüße
Andre


Angehängte Dateien
.xlsm   Blinken_test.xlsm (Größe: 16,32 KB / Downloads: 4)
Antwortento top
#7
Hallo Andre

Beispiel:
Code:
Private Sub Blinken()
    If Second(Time) Mod 2 = 0 Then
        ActiveSheet.Shapes.Range(("Rohr1")).Line.ForeColor.RGB = RGB(197, 90, 17)
    Else
        ActiveSheet.Shapes.Range(("Rohr1")).Line.ForeColor.RGB = RGB(0, 176, 240)
    End If
  Call BlinkenEin
End Sub
Gruss Guschti
Der Künstler lebt auch vom Applaus
Antwortento top
#8
Hallöchen,

Zitat:Auch wir können nicht jede Eigenschaft eines Objektes aus dem Handgelenk schütteln.
Deshalb wäre eine Beispieldatei gut damit die Helfer ihre Codes testen können.

Ich glaube, eine Linie in ein Blatt einzufügen und diese in Rohr1 umzubenennen könnte auch ohne Beispieldatei klappen Smile

Für die Programmierung kann man zuweilen auch den Makrorekorder nutzen. Siehe dazu

Ich habe mal eine Linie erzeugt und rot gefärbt. Dabei ist das herausgekommen. Wenn Du Dir das anschaust, ist da einiges dabei, was auch Ralf benutzt hat. Nur ist sein Färben in einer Zeile untergebracht.

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
    ActiveSheet.Shapes.Range(Array("Rohr1")).Select
    With Selection.ShapeRange.Line
      .Visible = msoTrue
      .ForeColor.RGB = RGB(255, 0, 0)
      .Transparency = 0
    End With
End Sub

Eingekürzt und nach Deinem bisherigen Prinzip könnte man es so schreiben

Code:
Sub Blinken()
If ActiveSheet.Shapes.Range(Array("Rohr1")).Line.ForeColor.RGB = RGB(0, 176, 240) Then
  ActiveSheet.Shapes.Range(Array("Rohr1")).Line.ForeColor.RGB = RGB(197, 90, 17)
Else
  ActiveSheet.Shapes.Range(Array("Rohr1")).Line.ForeColor.RGB = RGB(0, 176, 240)
End If
End Sub

und wenn Du Dich mal über With informierst und das verwendest geht es noch kürzer

Code:
Sub Blinken()
With ActiveSheet.Shapes.Range(Array("Rohr1")).Line.ForeColor
If .RGB = RGB(0, 176, 240) Then
  .RGB = RGB(197, 90, 17)
Else
  .RGB = RGB(0, 176, 240)
End If
End With
End Sub

Aber mal unabhängig davon sollte man überlegen, dass so ein Blinken schon belastend ist.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • Andrek
Antwortento top
#9
(05.11.2020, 07:37)schauan schrieb: ...... ist da einiges dabei, was auch Ralf benutzt hat......
Soso, was hab ich denn benutzt?   Huh  

@ TE  Ich muß mich korrigieren, manche können sowas aus dem Handgelenk schütteln aber nicht ich.
Antwortento top
#10
... ok, war Guschti Smile Und stell Dein Licht mal nicht unter den Scheffel ... 100
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste