Hilfe bei einem Makro
Hallo an alle und erst mal schöne Weihnachten,
ich habe hier vor einiger Zeit ein Makro bekommen das bis jetzt einwandfrei funktioniert hat. Ich habe diese Datei sehr lange nicht mehr genutzt. Erstellt wurde die Datei im Excel 2000 und unter Windows NT jetzt benutze ich Excel 2002 unter Windows XP, ich weiß zwar nicht ob das was was mit Versions wechsel zu tun hat vielleicht könnt ihr mir ja weiter helfen.
Das Makro verändert automatisch die Farbe von Buchstaben hat es zumindets gemacht !?
Jetzt kommt folgende Fehlermeldung:
Laufzeitfelher 1004
Die Color Index-Eigenschaft des Font-Objektes kann nicht festgelegt werden.
Hier das Makro:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Select Case Target.Value
Case "K"
Target.Font.ColorIndex = 3
Case "N"
Target.Font.ColorIndex = 3
Case "O"
Target.Font.ColorIndex = 3
Case "MS"
Target.Font.ColorIndex = 3
Case "U"
Target.Font.ColorIndex = 10
Case "SU"
Target.Font.ColorIndex = 10
Case Else
Target.Font.ColorIndex = xlColorIndexAutomatic
End Select
End Sub
Ich hoffe ihr könnt mir da helfen .
Gruß Michael
Antwort schreiben
Antwort 1 von rainberg vom 25.12.2020, 15:17 Options
Hallo Michael,
Dir ebenfalls Frohe Weihnacht.
Warum der Code bei Dir eine Fehlermeldung auslöst, kann ich leider nicht sagen, bei mir läuft er.
Der Code lässt sich aber wie folgt kürzen, versuch's mal damit.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Select Case Target.Value
Case "K", "N", "O", "MS"
Target.Font.ColorIndex = 3
Case "U", "SU"
Target.Font.ColorIndex = 10
Case Else
Target.Font.ColorIndex = xlColorIndexAutomatic
End Select
End Sub
Gruß
Rainer
Antwort 2 von nighty vom 25.12.2020, 16:39 Options
hi all
eventuelle geschuetzte bereiche wie verbundene zellen und oder bezugsverlust,letzteres liesse sich duch direkte sheet angaben beseitigen bzw durch Sheet(2).Activate statt der 2 bzw index liesse sich auch der name eintragen
Dann wuensche ich allen usern noch ein schoenes besinnliches Weihnachtfest :-))
gruss nighty
Antwort 3 von nighty vom 25.12.2020, 16:41 Options
hi all
so attock wuerde ich sagen das ein bezugsverlust stattfand und letzteres das gewollte problem beheben koennte :-)
gruss nighty
Antwort 4 von nighty vom 25.12.2020, 16:49 Options
hi all
eine moegliche loesung waere diese
gruss nighty
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Worksheets(1)
Select Case .Cells(Target.Row, Target.Column).Value
Case "K"
.Target.Font.ColorIndex = 3
Case "N"
.Target.Font.ColorIndex = 3
Case "O"
.Target.Font.ColorIndex = 3
Case "MS"
.Target.Font.ColorIndex = 3
Case "U"
.Target.Font.ColorIndex = 10
Case "SU"
.Target.Font.ColorIndex = 10
Case Else
.Cells(Target.Row, Target.Column).Font.ColorIndex = xlColorIndexAutomatic
End Select
End With
End Sub
Antwort 5 von nighty vom 25.12.2020, 16:58 Options
hi all
dann noch rainer's optimierter code
gruss nighty
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Worksheets(1)
Select Case .Cells(Target.Row, Target.Column).Value
Case "K", "N", "O", "MS"
.Target.Font.ColorIndex = 3
Case "U", "SU"
.Target.Font.ColorIndex = 10
Case Else
.Cells(Target.Row, Target.Column).Font.ColorIndex = xlColorIndexAutomatic
End Select
End With
End Sub
Antwort 6 von nighty vom 25.12.2020, 17:20 Options
hi all
noch eine erklaerung :-)
gruss nighty ^^
ein tabellenereignis das keine worksheet angaben besitzt, verliert durch eine beliebige art der worksheetactivierung bzw selectierung (wie auch workbooks)dessen sogenannten focus bzw bezug zur eigentlich gedachten tabelle
p.s.
wusstet ihr schon das ich fuer erklaerungen oder auch beschreibungen meist laenger brauch als fuer den code *grummel*
fortsetzung
*§$*?()/&%*
:-))
Antwort 7 von Michael10 vom 26.12.2020, 10:14 Options
Hallo Rainer hallo Nighty,
danke erst mal für die Hilfe, ich habe es mit beiden Codes versucht aber die Fehlermeldung ist die gleiche geblieben.
Früher lief der Code einwandfrei, ihr seid sicher das es nicht mit der Versionsänderung von Excel zu tun hat ?
Ich hoffe ihr oder wer anders hat noch eine Idee.
Gruß Michael
Antwort 8 von nighty vom 26.12.2020, 10:27 Options
hi all
und wenn du das zum anfang setzt ?
gruss nighty
Worksheets(1).Activate
Antwort 9 von Michael10 vom 26.12.2020, 10:36 Options
Hallo Nigthy,
ich habe jetzt mal deinen Code von Antwort Nr.4 in eine lehre Datei getan und da kommt jetzt eine andere Fehlermeldung und zwar:Laufzeitfehler 438
Objekt unterstütz diese Eigenschaft oder Methode nicht
Vielleicht hast du ja noch eine Idee.
Gruß Michael
Antwort 10 von fedjo vom 26.12.2020, 10:49 Options
Hallo Michael10
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Worksheets(1)
Select Case .Cells(Target.Row, Target.Column).Value
Case "K"
Target.Font.ColorIndex = 3
Case "N"
Target.Font.ColorIndex = 3
Case "O"
Target.Font.ColorIndex = 3
Case "MS"
Target.Font.ColorIndex = 3
Case "U"
Target.Font.ColorIndex = 10
Case "SU"
Target.Font.ColorIndex = 10
Case Else
Cells(Target.Row, Target.Column).Font.ColorIndex = xlColorIndexAutomatic
End Select
End With
End Sub
Gruß
fedjo
Antwort 11 von Michael10 vom 26.12.2020, 10:59 Options
Hallo Fedjo,
ich habe deinen Code ins Tabellenblatt einfügt es kommt zwar keine Fehlermeldung beim schreiben der jeweiligen Buchstaben aber die Farbe verändert sich auch nicht !!??
Gruß Michael
Antwort 12 von fedjo vom 26.12.2020, 11:03 Options
Hallo Michael,
bei mir funktioniert der Code.
Den Code in Tabelle1 einfügen.
Gruß
fedjo
Antwort 13 von Michael10 vom 26.12.2020, 11:18 Options
Hallo Fedjo,
ich habe Code schon richtig eingefügt passiert aber nichts ?!.
Keine Fehlermeldung keine Farbänderung.
Hat hier wer noch eine Idee.
Gruß Michael
Antwort 14 von fedjo vom 26.12.2020, 11:21 Options
Hallo Michael,
ich mal eine
Mustertabelle erstellt, die du ja mal testen kannst.
Gruß
fedjo
Antwort 15 von rainberg vom 26.12.2020, 11:23 Options
Hallo Michael
versuch mal
With Worksheets("Tabellexyz")
anstatt
With Worksheets(1)
Tabellexyz natürlich anpassen.
Gruß
Rainer
Antwort 16 von Michael10 vom 26.12.2020, 11:37 Options
Hallo Fedjo hallo Rainer
Fedjo deine Musterdatei kann nicht angezeigt werden!
Rainer ich habe den Code so verändert ich hoffe das stimmt so
With Worksheets("Tabelle4")
bringt aber wieder die Fehlermeldung
Laufzeitfehler 438
Objekt unterstütz diese Eigenschaft oder Methode nicht
Ich hoffe euch vergeht nicht die Lust und ihr habt noch ein paar Ideen.
Gruß Michael
Antwort 17 von fedjo vom 26.12.2020, 11:43 Options
Antwort 18 von Michael10 vom 26.12.2020, 12:05 Options
Hallo Fedjo,
in der Mustertabelle funzt der Code nur wenn ich ihn in meiner Datei in die Tabelle einfüge kommt wieder die Fehlermeldung
Laufzeitfelher 1004
Die Color Index-Eigenschaft des Font-Objektes kann nicht festgelegt werden.
Ich habe nach einigen Suchen die Orginaldatei die hier zu diesen Thema bekommen gefunden da funzt auch alles wie gehabt.
Ich denke das Problem hängt mit der Datei zusammen aber was könnte das sein.
Gruß Michael
Antwort 19 von fedjo vom 26.12.2020, 12:11 Options
Hallo Michael,
vielleicht solltest du deine Datei mal mit
RapidShare ins
Forum stellen!
Gruß
fedjo
Antwort 20 von Michael10 vom 26.12.2020, 12:36 Options
Hallo Fedjo,
diese Datei ist ein Dienstplan ich habe für diesen Zweg die Namen raus genommen, der Farbcode befindet sich in den Manatsseiten von Januar bis Dezember.
Ich hoffe ihr du findet das Problem
http://rapidshare.com/files/176899464/Dienstplan-ohne_Namen.xls
So wie du habe ich das nicht hin bekommen aber das ist die Adreese wo die Datei steht.
Gruß Michael