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 21 von Michael10 vom 26.12.2020, 13:38 Options
Hallo nochmal,
ich hoffe ich hab nichts falsch gemacht oder genießt ihr erst mal das schöne Wetter.
Ich hoffe bis dann.
Gruß Michael
Antwort 22 von fedjo vom 26.12.2020, 13:52 Options
Hallo Michael,
bei mir funktioniert deine Datei.
Ich benutze auch XP und Excel 2000, es liegt dann vielleicht an Excel 2003. Welche Zeile im Code als Fehler (Debuggen) gelb angezeigt.
Gruß
fedjo
Antwort 23 von Michael10 vom 26.12.2020, 14:01 Options
Hallo Fedjo,
wenn ich ein N eingebe z.B.
Case "N"
Target.Font.ColorIndex = 3 < wird das gelb mit einem Pfeil
gekennzeicht wenn ich dann durch schliesen von VBA die Debbungen beende und das N aus der Zelle wieder lösche wir
das gelb angezeigt
Case Else
Target.Font.ColorIndex = xlColorIndexAutomatic
Gruß Michael
Antwort 24 von fedjo vom 26.12.2020, 14:21 Options
Hallo Michael,
versuch es mal mit einer einfachen "If Abfrage".
Code in den Monaten ersetzen:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target = "K" Or Target = "N" Or Target = "O" Or Target = "MS" Then Target.Font.ColorIndex = 3
If Target = "U" Or Target = "SU" Then Target.Font.ColorIndex = 10
End Sub
Gruß
fedjo
Antwort 25 von Michael10 vom 26.12.2020, 14:31 Options
Hallo Fedjo,
gleicher Fehler bei der Eingabe von K wird das jetzt gelb
Target.Font.ColorIndex = 3
Bitte nicht aufgeben auch wenns heute nichts mehr wird.
Gruß Michael
Antwort 26 von fedjo vom 26.12.2020, 14:47 Options
Hallo Michael,
zeichne doch mal in einer leeren Datei ein Makro auf, in dem die Schriftfarbe geändert wird und stell das Makro ins Forum.
Gruß
fedjo
Antwort 27 von Michael10 vom 26.12.2020, 14:54 Options
Hallo Fedjo,
wie gewünscht das aufgezeichnete Makro.
Sub Schriftfarbe_ändern()
'' Schriftfarbe_ändern Makro
' Makro am 26.12.2008
Range("A1:A10").Select
Selection.Font.ColorIndex = 3
End Sub
Ich hoffe das bringt dich weiter.
Muß jetzt leider erst mal weg.
Danke bis hier.
Ich hoffe bis später
Gruß Michael
Antwort 28 von fedjo vom 26.12.2020, 15:17 Options
Hallo Michael,
versuchs mal so:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "K" Or Target = "N" Or Target = "O" Or Target = "MS" Then Target.Font.ColorIndex = 3
If Target = "U" Or Target = "SU" Then Target.Font.ColorIndex = 10
End Sub
Gruß
fedjo
Antwort 29 von Michael10 vom 26.12.2020, 15:23 Options
Hallo Fedjo,
gleicher Fehler bei der Eingabe von K wird das jetzt gelb
Target.Font.ColorIndex = 3
Muß jetzt aber wirklich, bis dann.
Gruß Michael
Antwort 30 von fedjo vom 26.12.2020, 18:14 Options
Hallo Michael,
und noch ein Versuch.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = "K" Or Target = "N" Or Target = "O" Or Target = "MS" Then
Target.Font.ColorIndex = 3
End If
If Target = "U" Or Target = "SU" Then
Target.Font.ColorIndex = 10
End If
End Sub
Gruß
fedjo
Antwort 31 von fedjo vom 27.12.2020, 09:47 Options
Hallo Michael,
habe den Code noch mal umgestellt.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case "K", "N", "O", "MS"
Cells(Target.Row, Target.Column).Font.ColorIndex = 3
Case "U", "SU"
Cells(Target.Row, Target.Column).Font.ColorIndex = 10
Case Else
Target.Interior.ColorIndex = 0
End Select
End Sub
Gruß
fedjo
Antwort 32 von Hajo_Zi vom 27.12.2020, 10:52 Options
Hallo,
nur kleine Verbesserung
für
End If
If Target ...
kann man auch schreiben
ElseIf Target ...
Gruß Hajo
Antwort 33 von Michael10 vom 27.12.2020, 11:07 Options
Hallo fedjo hallo Hajo,
ich habe beide Codes ausprobiert sie bringen beide die bekannte Fehlermeldung.
Da die Datei bei dir Fedjo unter Excel2000 läuft bei mir unter Excel 2003 nicht läuft aber das Orginal Makro in einer lehren Datei auch bei mir läuft hege den Verdacht das Excel 2003 etwas in der Datei verändert und das es garnichts mit VBA zu tun.
Aber was könnte das sein, ich hoffe es kommen noch ein Paar Ideen.
Gruß Michael
Antwort 34 von Hajo_Zi vom 27.12.2020, 11:14 Options
Hallo,
ich hatte den Beitrag schon mal geschrieben, aber er ist nicht da.
kleine Verbesserung für
End If
If Target ...
kann man auch
ElseIf Target ...
Schreiben
Gruß Hajo
Antwort 35 von Hajo_Zi vom 27.12.2020, 11:16 Options
Hallo Michael,
lade doch mal die Datei hoch. z.B. hier http://www.uploadagent.de/index.php
Link am Ende in den Beitrag kopieren.
Gruß Hajo
Antwort 36 von Michael10 vom 27.12.2020, 11:27 Options
Hallo Fedjo und Hajo und an alle die sich hier beteiligt haben,
ich habe den Fehler gefunden im Grunde ganz einfach man muß nur drauf kommen.
Die Seiten in meiner Datei sind alle Schreigeschütz weil da Menschen mit arbeiten die wenig Ahnung von Excel haben, nun hat Excel 2003 viel mehr Obtionen beim Schreibschutz wie Excel 2000, nun was mache ich wenn ich die Schriftfarbe in einer Zelle ändere ich formatiere sie, ich habe nun einfach beim setzen des Schreibschutzes noch erlaubt das der Nutzer Zellen Formatieren kann und schon lief das Orginal Makro wieder.
Ich bedanke mich bei allen hier geholfen haben und wünsche dem ganzen Forum einen guten Rutsch ins neue Jahr.
Gruß Michael