Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1556to1560
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

Shape

Shape
05.05.2017 21:54:06
stef26
Guten Abend,
ich hab da mal ne Frage.
Ich habe ein Makro, welches mir ein Bild aus einem anderen Tabellenblatt projeziert.
So kann ich zum Beispiel eine Beschreibung wie in einem Film ablaufen lassen, oder eine Super Laufschrift generieren...
For IntroZaehler = 1 To 35
ActiveSheet.Shapes.Range(Array("Vorschau")).Select
Selection.Formula = "=INTROTXT!$A$" & 1 + IntroZaehler & ":$C$" & 18 + IntroZaehler
Application.Wait (Now + TimeValue("0:00:01"))
Next IntroZaehler
Leider funktioniert das Ganze nur mit select, was einen unschönen Rahmen um das Shape macht.
Wieso bringt mir
ActiveSheet.Shapes.Range(Array("Vorschau")).Formula = "=INTROTXT!$A$" & 1 + IntroZaehler & ":$C$" & 18 + IntroZaehler
eine Fehlermeldung?
Gibt es eine andere Lösung ohne das Shape selektieren zu müssen?
Lg
Stefan

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Shape
05.05.2017 22:26:10
Werner
Hallo Stefan,
hast du es mal mit einem With - End With versucht?
With ActiveSheet.Shapes.Range(Array("Vorschau"))
.Formula = "=INTROTXT!$A$" & 1 + IntroZaehler & ":$C$" & 18 + IntroZaehler
End With
Und wenn es nicht funktioniert, dann wäre noch der genaue Fehler interessant.
Gruß Werner
AW: Shape
05.05.2017 23:03:18
stef26
Hallo Werner,
danke für die schnelle Rückmeldung.
Auch bei deiner Variante bringt er den selben Fehler.
Laufzeitfehler 438
Objekt unterstützt diese Eigenschaft oder Methode nicht.
https://www.herber.de/bbs/user/113359.xlsm
LG
Stefan
Anzeige
AW: Shape
05.05.2017 23:04:58
stef26
ach Häckchen vergessen für offene Frage
Sorry
Stefan
AW: Shape
06.05.2017 00:14:32
Beverly
Hi Stefan,
versuche es mal so:
Sub Vorschautext()
Dim objShape
ActiveSheet.Shapes.Range(Array("Vorschau")).Select
Set objShape = Selection
Range("A1").Select
For IntroZaehler = 1 To 15
objShape.Formula = "=INTROTXT!$A$" & 1 + IntroZaehler & ":$C$" & 18 + IntroZaehler
DoEvents
Application.Wait (Now + TimeValue("0:00:01"))
Next IntroZaehler
objShape.Formula = ""
End Sub


AW: Shape
06.05.2017 01:06:25
stef26
Hallo Beverly,
ja nun ist der Fehler weg, aber durch das Select des shapes und danach select von A1 flakert der Bildschirm noch unschöner. Aber ich denke es ist ein erster Schritt.
Vielleicht gibt's ja noch ne Lösung ganz ohne select?
Danke Dir trotzdem
Liebe Grüße
Stefan
Anzeige
AW: Shape
06.05.2017 02:13:03
fcs
Hallo Stefan,
wenn man das selektierte Objekt einer Variablen zuweist,dann kann man zwischenzeitlich ein anders Objekt (z.B. eine Zelle) aktivieren, dann kann man die Formula-Eigenschaft ändern ohne dass der Selektions-Rahmen des Shapes während der Wartezeit angezeigt wird.
Gruß
Franz
Sub ShowIntro000()
Dim objObject As Object
Dim rngAktiv As Range
Set rngAktiv = ActiveCell
ActiveSheet.Shapes.Range(Array("Vorschau")).Select 'ActiveSheet.Shapes("Vorschau")
Set objObject = Selection
objObject.TopLeftCell.Offset(1, 1).Select
For IntroZaehler = 1 To 35
With objObject
.Formula = "=INTROTXT!$A$" & 1 + IntroZaehler & ":$C$" & 18 + IntroZaehler
End With
Application.Wait (Now + TimeValue("0:00:01"))
Next IntroZaehler
rngAktiv.Select
End Sub

Anzeige
AW: Shape
06.05.2017 07:11:11
stef26
Hallo Franz,
cool werde ich gleich mal ausprobieren...
Besten Dank !!!!!!!!!!!!
Gruß
Stefan
AW: Shape
06.05.2017 09:00:54
Nepumuk
Hallo,
das geht auch ohne Select:
Option Explicit

Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" ( _
    ByVal dwMilliseconds As Long)

Public Sub ShowIntro000()
    Dim lngIndex As Long
    With Tabelle1.Rectangles.Item("Vorschau")
        For lngIndex = 1 To 35
            .Formula = "=INTROTXT!$A$" & 1 + lngIndex & ":$C$" & 18 + lngIndex
            Call Sleep(500) '500 Millisekunden Pause
        Next
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Shape
06.05.2017 15:51:25
stef26
Hallo Nepumuk,
bei mir bleibt das Macro bei With Tabelle1... stehen?
Hab dann auch mal das mit dem Sleep übernommen, da ich da unter 1 sekunde takten kann.
Leider aktualisiert er dann das shape nicht mehr..?
Gruß
Stefan
AW: Shape
06.05.2017 16:15:41
Nepumuk
Hallo Stefan,
lade doch einfach mal die Tabelle mit dem Shape hoch (keine Daten keine anderen Tabellen aber die Original-Tabelle mit dem Shape !!!) dann pass ich es dir an.
Gruß
Nepumuk
mal die XLS
06.05.2017 16:38:09
stef26
Hallo Nepumuk,
aufgrund der Größe musste ich nun alles rauslöschen aus der Orginal.
https://www.herber.de/bbs/user/113370.xlsm
Im Orginal sind dann mal Bilder die dann wie eine Filfvorschau über einen Fernseher dem Nutzer angezeigt wird.
Wie schon gesagt vor allem das mit dem Sleep bekomme ich nicht hin. Er wartet zwar die 500mSek macht aber bei mir keine Aktualisierung...
Gruß
Stefan
Anzeige
AW: mal die XLS
06.05.2017 16:53:35
Nepumuk
Hallo Stefan,
teste mal:
Option Explicit

Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" ( _
    ByVal dwMilliseconds As Long)

Public Sub Vorschautext()
    Dim lngIndex As Long
    With Tabelle6.Pictures.Item("Vorschau")
        For lngIndex = 1 To 35
            .Formula = "=INTROTXT!$A$" & 0 + lngIndex & ":$C$" & 18 + lngIndex
            DoEvents
            Call Sleep(500)
        Next
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: mal die XLS
06.05.2017 17:05:08
stef26
Hi, danke für deine Hilfe.
Perfect. Es läuft !!!!!!!
Ich bin happy
vielen vielen Dank
Liebe Grüsse
Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige