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

AutoShape (Makro ausführen - Text ändern)?

AutoShape (Makro ausführen - Text ändern)?
Sergej
Hallo Leute,
ich habe ein AutoShape mit Text erstellt.
Beim Klick auf das Autoshape soll ein Makro ausgeführt werden und der Shapetext soll geändert werden.
Das ganze vier Mal.
Was habe ich im Code falsch gemacht?
Sub AutoShape1_Click()
Dim objShp As Shape
On Error GoTo ErrExit
Application.ScreenUpdating = False           ' "Bildschirmflackern" vermeiden
Set objShp = ActiveSheet.Shapes(Application.Caller)
If objShp.TextFrame.Characters.Text = "Gesamt-Tabelle darstellen" Then
Call Gesamttabelle
objShp.TextFrame.Characters.Text = "Heim-Tabelle darstellen"
End If
If objShp.TextFrame.Characters.Text = "Heim-Tabelle darstellen" Then
Call Heimtabelle
objShp.TextFrame.Characters.Text = "Auswärts-Tabelle darstellen"
End If
If objShp.TextFrame.Characters.Text = "Auswärts-Tabelle darstellen" Then
Call Auswaertstabelle
objShp.TextFrame.Characters.Text = "Alle-Tabelle darstellen"
End If
If objShp.TextFrame.Characters.Text = "Alle-Tabelle darstellen" Then
Call Alletabellen
objShp.TextFrame.Characters.Text = "Gesamt-Tabelle darstellen"
End If
ErrExit:
Application.ScreenUpdating = True
End Sub

Danke vorab!
Gruß,
Sergej

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: AutoShape (Makro ausführen - Text ändern)?
04.08.2011 21:42:24
ransi
HAllo
Du musst die Sub dann auch verlassen.
Sonnst werden die andern ifs auch ncoh abgeprüft
Teste mal:
If objShp.TextFrame.Characters.Text = "Gesamt-Tabelle darstellen" Then
    Call Gesamttabelle: Exit Sub
    objShp.TextFrame.Characters.Text = "Heim-Tabelle darstellen"
End If

Oder das Ganze in eine Select-Case-struktur packen
ransi
Anzeige
AW: AutoShape (Makro ausführen - Text ändern)?
04.08.2011 21:49:31
Sergej
Hi ransi,
so habe ich jetzt, und es funktioniert nicht:
Sub AutoShape1_Click()
Dim objShp As Shape
On Error GoTo ErrExit
Application.ScreenUpdating = False           ' "Bildschirmflackern" vermeiden
Set objShp = ActiveSheet.Shapes(Application.Caller)
If objShp.TextFrame.Characters.Text = "Gesamt-Tabelle darstellen" Then
Call Gesamttabelle
objShp.TextFrame.Characters.Text = "Heim-Tabelle darstellen"
End If
If objShp.TextFrame.Characters.Text = "Heim-Tabelle darstellen" Then
Call Heimtabelle
objShp.TextFrame.Characters.Text = "Auswärts-Tabelle darstellen"
End If
If objShp.TextFrame.Characters.Text = "Auswärts-Tabelle darstellen" Then
Call Auswaertstabelle
objShp.TextFrame.Characters.Text = "Alle-Tabelle darstellen"
End If
If objShp.TextFrame.Characters.Text = "Alle-Tabelle darstellen" Then
Call Alletabellen
objShp.TextFrame.Characters.Text = "Gesamt-Tabelle darstellen"
End If
If objShp.TextFrame.Characters.Text = "Gesamt-Tabelle darstellen" Then
Call Gesamttabelle: Exit Sub
objShp.TextFrame.Characters.Text = "Heim-Tabelle darstellen"
End If
ErrExit:
Application.ScreenUpdating = True
End Sub

Wie sieht das mit Select-Case-struktur aus?
Gruß,
Sergej
Anzeige
AW: AutoShape (Makro ausführen - Text ändern)?
04.08.2011 21:45:59
Josef

Hallo Sergej,
Sub AutoShape1_Click()
  Dim objShp As Shape
  
  On Error GoTo ErrExit
  Application.ScreenUpdating = False ' "Bildschirmflackern" vermeiden
  
  Set objShp = ActiveSheet.Shapes(Application.Caller)
  
  With objShp.DrawingObject
    Select Case .Text
      Case "Gesamt-Tabelle darstellen"
        Call Gesamttabelle
        .Text = "Heim-Tabelle darstellen"
      Case "Heim-Tabelle darstellen"
        Call Heimtabelle
        .Text = "Auswärts-Tabelle darstellen"
      Case "Auswärts-Tabelle darstellen"
        Call Auswaertstabelle
        .Text = "Alle-Tabelle darstellen"
      Case Else
        Call Alletabellen
        .Text = "Gesamt-Tabelle darstellen"
    End Select
  End With
  
  ErrExit:
  Application.ScreenUpdating = True
  Set objShp = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: AutoShape (Makro ausführen - Text ändern)?
04.08.2011 22:26:40
Sergej
Hallo Sepp,
PERFEKT!
Danke schön!
Gruß,
Sergej

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige