Thema Datum  Von Nutzer Rating
Antwort
18.09.2007 08:46:03 Tina
NotSolved
18.09.2007 20:32:05 jh
NotSolved
19.09.2007 10:19:32 Tina
NotSolved
19.09.2007 10:33:14 jh
NotSolved
19.09.2007 11:42:55 jh
NotSolved
19.09.2007 12:54:43 Tina
NotSolved
19.09.2007 14:56:16 Tina
NotSolved
19.09.2007 16:07:26 jh
NotSolved
20.09.2007 08:12:04 Tina
NotSolved
Blau Aw:Aw:Aw:Aw:Aw:Nachtrag
20.09.2007 11:40:21 jh
NotSolved
21.09.2007 07:17:38 Tina
NotSolved

Ansicht des Beitrags:
Von:
jh
Datum:
20.09.2007 11:40:21
Views:
1052
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:Aw:Aw:Nachtrag
Hallo,

wie ich das sehe brauchst du die Objektvariable LetzteZelle nur dazu, dass die Auswahl von dem zuletzt in der Sub FarbeSetzen ausgewählten Shape wieder auf die letzte Zelle zurückgeht. Der Befehl sh.Select in dieser Sub ist aber überflüssig, da du den Text auch ändern kannst, ohne das Shape zu selektieren. Übrigens ist wohl ActiveWorkbook.Shapes ein Tippfehler, denn wenn das wirklich so in deinem Code steht, müsste da ein Fehler kommen, weil die Shapes zum Worksheet-Objekt gehören.

Sub FarbeSetzen(F As Boolean)
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
If Left$(sh.TextFrame.Characters.Text, 6) = "Färben" Then
If Farbe Then
sh.TextFrame.Characters.Text = "Färben AUS"
Else
sh.Textframe.Characters.Text = "Färben EIN"
End If
Exit For
End If
Next sh
End Sub

Danach kannst du in der Sub Farbmodus die Zeile LetzteZelle.Select löschen.

In der Sub FarbeSetzen ist es übrigens recht umständlich, das gesuchte Shape anhand seiner Beschriftung zu finden. In der Beispieldatei die du upgeloadet hast, ist das Shape, dessen Text du ändern willst, Worksheets("Tabelle1").Shapes(3). Wenn das immer so ist, geht es viel einfacher:

Sub FarbeSetzen()
With Worksheets("Tabelle1").Shapes(3)
If Farbe Then
.TextFrame.Characters.Text = "Färben AUS"
Else
.Textframe.Characters.Text = "Färben EIN"
End If
End With
End Sub

Da Farbe eine globale Variable ist, musst du sie nicht als Parameter übergeben. Übrigens verwendest du in deinem Code den übergebenen Parameter F ja auch nicht, sondern greifst auf die Variable Farbe zu.

Nimm mir die Bemerkung nicht übel, aber dein Code ist ziemlich mit der heißen Nadel gestrickt und an vielen Stellen revisionsbedürftig.

Gruß

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
18.09.2007 08:46:03 Tina
NotSolved
18.09.2007 20:32:05 jh
NotSolved
19.09.2007 10:19:32 Tina
NotSolved
19.09.2007 10:33:14 jh
NotSolved
19.09.2007 11:42:55 jh
NotSolved
19.09.2007 12:54:43 Tina
NotSolved
19.09.2007 14:56:16 Tina
NotSolved
19.09.2007 16:07:26 jh
NotSolved
20.09.2007 08:12:04 Tina
NotSolved
Blau Aw:Aw:Aw:Aw:Aw:Nachtrag
20.09.2007 11:40:21 jh
NotSolved
21.09.2007 07:17:38 Tina
NotSolved