Supportnet / Forum / Tabellenkalkulation
Aktive Zelle farbig - bestehende Formatierung bleibt
Frage
Hallo an alle
Hab ein Problem mit einer VBA. Ich möchte in der Aktiven Zelle eine andere Farbe. In diesem Fall Grün.
Soweit so gut aber durch die Zeile
Cells.Interior.ColorIndex = xlNone
löscht er mir mein mehrfarbig Formatiertes Blatt.
Gibt es einen Code in der nur die Aktive Zelle farbig geändert wird und nicht jedesmal danach mein ganzes Blatt Weiß wird, sondern so bleibt wie es ist?
Wäre echt schön wenn mir jemand weiterhelfen kann.
Hier nochmal der komplette Code...
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Static Zelle As Range
If Not Zelle Is Nothing Then
Cells.Interior.ColorIndex = xlNone
End If
Target.Interior.ColorIndex = 4 ' Grün
Set Zelle = Target
End Sub
Schon mal Vielen Dank...
MfG Fischi
Antwort 1 von coros
Hi Fischi,
das geht. Da das aber etwas umfangreicher ist, habe ich Dir mal eine Beispieldatei hochgeladen, die Du hier und dort dann die Datei Zeilen werden farblich markiert wenn angewaehlt ansehen kannst. Wenn Du Fragen haben solltest, dann melde Dich.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
das geht. Da das aber etwas umfangreicher ist, habe ich Dir mal eine Beispieldatei hochgeladen, die Du hier und dort dann die Datei Zeilen werden farblich markiert wenn angewaehlt ansehen kannst. Wenn Du Fragen haben solltest, dann melde Dich.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Fischi40
Hallo Coros und alle anderen am Bildschirm,
Deine Beispielddatei ist echt super. Leider ist es mir nicht gelungen den letzten Teil so umzuschreiben das er mir nur eine einzelne Zelle andersfarbig formatiert (die aktive Zelle). Ausserdem funktioniert das Makro nicht bei eingeschaltenten Blattschutz (habe ein paar freigegebene Zellen in den Eingaben gemacht werden sollen) die anderen aber sind gesperrt.
Ist eben doch etwas umfangreicher...
Wäre schön wenn mir jemand weiterhelfen könnte
MfG Mario
Deine Beispielddatei ist echt super. Leider ist es mir nicht gelungen den letzten Teil so umzuschreiben das er mir nur eine einzelne Zelle andersfarbig formatiert (die aktive Zelle). Ausserdem funktioniert das Makro nicht bei eingeschaltenten Blattschutz (habe ein paar freigegebene Zellen in den Eingaben gemacht werden sollen) die anderen aber sind gesperrt.
Ist eben doch etwas umfangreicher...
Wäre schön wenn mir jemand weiterhelfen könnte
MfG Mario
Antwort 3 von schnallgonz
Hallo Fischi40
sieht doch ganz gut aus, nimm oben ein bisschen weg und schreib unten was dazu, sieht dann so aus:
Viel Spaß mit Deiner grünen aktiven Zelle
mfg
schnallgonz
sieht doch ganz gut aus, nimm oben ein bisschen weg und schreib unten was dazu, sieht dann so aus:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Static Zelle As Range
If Not Zelle Is Nothing Then
Cells.Interior.ColorIndex = xlColorIndexNone
End If
Target.Interior.ColorIndex = 4 ' Grün
Set Zelle = Target
End SubViel Spaß mit Deiner grünen aktiven Zelle
mfg
schnallgonz
Antwort 4 von coros
Moin Fischi,
da habe ich doch überlesen, dass nur die aktive Zelle die Farbe ändern sollte. Dann geht das auch etwas einfacher als in der Beispieldatei mit einer gesamten Zeile. Eine Lösung hast Du ja schon von @schnallgonz, allerdings stellt diese Lösung die alte Zellefarbe, wenn Zelle schon mal gefärbt war, nicht wieder her. Daher hier noch eine andere Lösung. Kopierde den Code in das VBA Projekt der Tabelle, in der er wirken soll.
Bei dem Code wird die aktive Zelle grün gefärbt. Hatte die Zelle vorher schon eine andere Hintergrundfarbe (was sie ja eigentlich immer hat, auch wenn sie weiß bzw. farblos ist), wird diese bei verlassen der Zelle wieder hergestellt.
Ich hoffe, die Lösung hilft Dir. Bei Fragen, melde Dich wieder.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
da habe ich doch überlesen, dass nur die aktive Zelle die Farbe ändern sollte. Dann geht das auch etwas einfacher als in der Beispieldatei mit einer gesamten Zeile. Eine Lösung hast Du ja schon von @schnallgonz, allerdings stellt diese Lösung die alte Zellefarbe, wenn Zelle schon mal gefärbt war, nicht wieder her. Daher hier noch eine andere Lösung. Kopierde den Code in das VBA Projekt der Tabelle, in der er wirken soll.
Option Explicit
Dim AlteFarbe As Integer, MarkierteZelle As String
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Target.Count > 1 Then Exit Sub
ActiveSheet.Unprotect "Test"
If MarkierteZelle = "" Then
MarkierteZelle = Target.Address
AlteFarbe = Target.Interior.ColorIndex
Target.Interior.ColorIndex = 4
Else
If Range(MarkierteZelle).Interior.ColorIndex = 4 Then
Range(MarkierteZelle).Interior.ColorIndex = AlteFarbe
End If
AlteFarbe = Target.Interior.ColorIndex
MarkierteZelle = Target.Address
Target.Interior.ColorIndex = 4
End If
ActiveSheet.Protect "Test"
End SubBei dem Code wird die aktive Zelle grün gefärbt. Hatte die Zelle vorher schon eine andere Hintergrundfarbe (was sie ja eigentlich immer hat, auch wenn sie weiß bzw. farblos ist), wird diese bei verlassen der Zelle wieder hergestellt.
Ich hoffe, die Lösung hilft Dir. Bei Fragen, melde Dich wieder.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von Fischi40
Hallo an alle,
Hallo coros,
der Code funzt super nur leider habe ich vergessen zu erwähnen das die meisten Zellen in denen Eingaben gemacht werden im Zellverbund mit 2,3 oder mehr Zellen liegen und da wird dann nicht die Farbe geändert.
Ist das dann überhaupt noch möglich?
Hallo coros,
der Code funzt super nur leider habe ich vergessen zu erwähnen das die meisten Zellen in denen Eingaben gemacht werden im Zellverbund mit 2,3 oder mehr Zellen liegen und da wird dann nicht die Farbe geändert.
Ist das dann überhaupt noch möglich?
Antwort 6 von coros
Nabend Fischi,
wenn Du mit verbundenen Zellen arbeitest, ist das so eine Sache mit VBA. Denn VBA und verbundene Zellen sind sich spinne Feind. Im Moment fällt mir da auch keine richtige Lösung ein. Das einzige wäre, wenn die Zellen verbunden sind, ermitteln, um wieviele Zellen es sich handelt, die da verbunden sind. Bei denen dann den Verbund aufheben, einfärben und dann wieder zu verbinden. Das alles kann man mit VBA machen, aber so auf die schnelle weiß ich auch nicht, ob das dann reibungslos funktioniert. Sollte ich am Wochende Zeit haben, kann ich mal versuchen da einen Code zu erstellen.
Sorry, dass ich Dir im Moment nicht weiterhelfen kann.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
wenn Du mit verbundenen Zellen arbeitest, ist das so eine Sache mit VBA. Denn VBA und verbundene Zellen sind sich spinne Feind. Im Moment fällt mir da auch keine richtige Lösung ein. Das einzige wäre, wenn die Zellen verbunden sind, ermitteln, um wieviele Zellen es sich handelt, die da verbunden sind. Bei denen dann den Verbund aufheben, einfärben und dann wieder zu verbinden. Das alles kann man mit VBA machen, aber so auf die schnelle weiß ich auch nicht, ob das dann reibungslos funktioniert. Sollte ich am Wochende Zeit haben, kann ich mal versuchen da einen Code zu erstellen.
Sorry, dass ich Dir im Moment nicht weiterhelfen kann.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 7 von coros
Hi Fischi,
also manchmal ist man richtig blind. Wenn Du die erste Zeile aus dem Code, also Zeile
If Target.Count > 1 Then Exit Sub
herauslöscht, dann funktioniert er so, wie Du es Dir vorstellst. Diese Zeile dient eigentlich nur dazu, dass wenn mehr als eine Zelle markiert wird, der Code sofort beendet wird. Das ist eine Sicherheitsfunktion, die ich immer standardmäßig einarbeite, wenn ich mit Target hantiere, da es da schon öfters zu Problemen gekommen ist. In diesem Fall ist es aber das verkerteste, was man einbauen kann, da ja verbundene Zellen eigentlich mehrere markierte Zellen sind (streng gesehen). Wenn also die aktive zelle eine verbundene Zelle war, hat die obige Anweisung das als mehr als eine markierte Zelle angesehen und den Code beendet. Durch das herauslöschen der Zeile, wird nun auch eine verbundene Zelle farblich markiert, wenn angewählt.
Also dann, viel Spaß mit dem Code.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
also manchmal ist man richtig blind. Wenn Du die erste Zeile aus dem Code, also Zeile
If Target.Count > 1 Then Exit Sub
herauslöscht, dann funktioniert er so, wie Du es Dir vorstellst. Diese Zeile dient eigentlich nur dazu, dass wenn mehr als eine Zelle markiert wird, der Code sofort beendet wird. Das ist eine Sicherheitsfunktion, die ich immer standardmäßig einarbeite, wenn ich mit Target hantiere, da es da schon öfters zu Problemen gekommen ist. In diesem Fall ist es aber das verkerteste, was man einbauen kann, da ja verbundene Zellen eigentlich mehrere markierte Zellen sind (streng gesehen). Wenn also die aktive zelle eine verbundene Zelle war, hat die obige Anweisung das als mehr als eine markierte Zelle angesehen und den Code beendet. Durch das herauslöschen der Zeile, wird nun auch eine verbundene Zelle farblich markiert, wenn angewählt.
Also dann, viel Spaß mit dem Code.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 8 von Fischi40
Hallo coros....
Dankefür deine Hilfe leider funzt der Code nur wenn ich keine andere VBA Codes in der Tabelle nutze... (bei mir behält er die angenommene Farbe bei)
Hier mal die komplette VBA aus der Tabelle:
Wäre echt super wenn du den Fehler findest...
Danke schonmal....
MfG Fischi
Dankefür deine Hilfe leider funzt der Code nur wenn ich keine andere VBA Codes in der Tabelle nutze... (bei mir behält er die angenommene Farbe bei)
Hier mal die komplette VBA aus der Tabelle:
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = 0 Then
Range("E14") = 1
Else
If ComboBox1.ListIndex = 1 Then
Range("E14") = 2
Else
If ComboBox1.ListIndex = 2 Then
Range("E14") = 3
Else
If ComboBox1.ListIndex = 3 Then
Range("E14") = 4
Else
If ComboBox1.ListIndex = 4 Then
Range("E14") = 5
Else
If ComboBox1.ListIndex = 5 Then
Range("E14") = 6
Else
If ComboBox1.ListIndex = 6 Then
Range("E14") = 7
Else
If ComboBox1.ListIndex = 7 Then
Range("E14") = 8
Else
If ComboBox1.ListIndex = 8 Then
Range("E14") = 9
Else
If ComboBox1.ListIndex = 9 Then
Range("E14") = 10
Else
If ComboBox1.ListIndex = 10 Then
Range("E14") = 11
Else
If ComboBox1.ListIndex = 11 Then
Range("E14") = 12
Else
If ComboBox1.ListIndex = 12 Then
Range("E14") = 13
Else
If ComboBox1.ListIndex = 13 Then
Range("E14") = 14
Else
If ComboBox1.ListIndex = 14 Then
Range("E14") = 15
Else
If ComboBox1.ListIndex = 15 Then
Range("E14") = 16
Else
If ComboBox1.ListIndex = 16 Then
Range("E14") = 17
Else
If ComboBox1.ListIndex = 17 Then
Range("E14") = 18
Else
If ComboBox1.ListIndex = 18 Then
Range("E14") = 19
Else
If ComboBox1.ListIndex = 19 Then
Range("E14") = 20
Else
If ComboBox1.ListIndex = 20 Then
Range("E14") = 21
Else
If ComboBox1.ListIndex = 21 Then
Range("E14") = 22
Else
If ComboBox1.ListIndex = 22 Then
Range("E14") = 23
Else
If ComboBox1.ListIndex = 23 Then
Range("E14") = 24
Else
If ComboBox1.ListIndex = 24 Then
Range("E14") = 25
Else
If ComboBox1.ListIndex = 25 Then
Range("E14") = 26
Else
If ComboBox1.ListIndex = 26 Then
Range("E14") = 27
Else
If ComboBox1.ListIndex = 27 Then
Range("E14") = 28
Else
If ComboBox1.ListIndex = 28 Then
Range("E14") = 29
Else
If ComboBox1.ListIndex = 29 Then
Range("E14") = 30
Else
If ComboBox1.ListIndex = 30 Then
Range("E14") = 31
Else
If ComboBox1.ListIndex = 31 Then
Range("E14") = 32
Else
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End Sub
Private Sub ComboBox2_Change()
If ComboBox2.ListIndex = 0 Then
Range("K14") = 1
Else
If ComboBox2.ListIndex = 1 Then
Range("K14") = 2
Else
If ComboBox2.ListIndex = 2 Then
Range("K14") = 3
Else
If ComboBox2.ListIndex = 3 Then
Range("K14") = 4
Else
If ComboBox2.ListIndex = 4 Then
Range("K14") = 5
Else
If ComboBox2.ListIndex = 5 Then
Range("K14") = 6
Else
If ComboBox2.ListIndex = 6 Then
Range("K14") = 7
Else
If ComboBox2.ListIndex = 7 Then
Range("K14") = 8
Else
If ComboBox2.ListIndex = 8 Then
Range("K14") = 9
Else
If ComboBox2.ListIndex = 9 Then
Range("K14") = 10
Else
If ComboBox2.ListIndex = 10 Then
Range("K14") = 11
Else
If ComboBox2.ListIndex = 11 Then
Range("K14") = 12
Else
If ComboBox2.ListIndex = 12 Then
Range("K14") = 13
Else
If ComboBox2.ListIndex = 13 Then
Range("K14") = 14
Else
If ComboBox2.ListIndex = 4 Then
Range("K14") = 15
Else
If ComboBox2.ListIndex = 15 Then
Range("K14") = 16
Else
If ComboBox2.ListIndex = 16 Then
Range("K14") = 17
Else
If ComboBox2.ListIndex = 17 Then
Range("K14") = 18
Else
If ComboBox3.ListIndex = 18 Then
Range("K14") = 19
Else
If ComboBox2.ListIndex = 19 Then
Range("K14") = 20
Else
If ComboBox2.ListIndex = 20 Then
Range("K14") = 21
Else
If ComboBox2.ListIndex = 21 Then
Range("K14") = 22
Else
If ComboBox2.ListIndex = 22 Then
Range("K14") = 23
Else
If ComboBox2.ListIndex = 23 Then
Range("K14") = 24
Else
If ComboBox2.ListIndex = 24 Then
Range("K14") = 25
Else
If ComboBox2.ListIndex = 25 Then
Range("K14") = 26
Else
If ComboBox2.ListIndex = 26 Then
Range("K14") = 27
Else
If ComboBox2.ListIndex = 27 Then
Range("K14") = 28
Else
If ComboBox2.ListIndex = 28 Then
Range("K14") = 29
Else
If ComboBox2.ListIndex = 29 Then
Range("K14") = 30
Else
If ComboBox2.ListIndex = 30 Then
Range("K14") = 31
Else
If ComboBox2.ListIndex = 31 Then
Range("K14") = 32
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End Sub
Private Sub CommandButton1_Click()
Worksheets("Kontierung").Select
End Sub
Private Sub CommandButton2_Click()
Worksheets("Dateneingabe (2)").Select
End Sub
Private Sub Label1_Click()
If Label1.Caption = Chr$(163) Then
Label1.Caption = "R"
globalBoolLabel1Ausgewählt = True
Else
Label1.Caption = Chr$(163)
globalBoolLabel1Ausgewählt = False
End If
End Sub
Private Sub Label2_Click()
If Label2.Caption = Chr$(163) Then
Label2.Caption = "R"
globalBoolLabel2Ausgewählt = True
Else
Label2.Caption = Chr$(163)
globalBoolLabel2Ausgewählt = False
End If
End Sub
Option Explicit
Dim AlteFarbe As Integer, MarkierteZelle As String
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
ActiveSheet.Unprotect "Test"
If MarkierteZelle = "" Then
MarkierteZelle = Target.Address
AlteFarbe = Target.Interior.ColorIndex
Target.Interior.ColorIndex = 19
Else
If Range(MarkierteZelle).Interior.ColorIndex = 19 Then
Range(MarkierteZelle).Interior.ColorIndex = AlteFarbe
End If
AlteFarbe = Target.Interior.ColorIndex
MarkierteZelle = Target.Address
Target.Interior.ColorIndex = 19
End If
ActiveSheet.Protect "Test"
End Sub
Wäre echt super wenn du den Fehler findest...
Danke schonmal....
MfG Fischi
Antwort 9 von coros
Hi Fischi,
zunächst einmal müsstest Du die Zeilen
in Deinem Code dort wo sie jetzt stehen ausschneiden und ganz am Anfang des VBA Projekt's, also ganz oben auf der Seite, wieder einfügen. Sonst dürfte an Deinem Code nichts hinderlich sein, dasss die Zellen nicht gefärbt werden. Wenn es dann immer noch nicht funktioniert, wäre es schön, wenn Du mir Deine Datei mal zukommen lassen würdest. Du kannst alles, was mich nichts angeht aus der Datei löschen. Schicke die Datei dann an die E-Mail:coros@excelbeispiele.de.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
zunächst einmal müsstest Du die Zeilen
Option Explicit
Dim AlteFarbe As Integer, MarkierteZelle As String
in Deinem Code dort wo sie jetzt stehen ausschneiden und ganz am Anfang des VBA Projekt's, also ganz oben auf der Seite, wieder einfügen. Sonst dürfte an Deinem Code nichts hinderlich sein, dasss die Zellen nicht gefärbt werden. Wenn es dann immer noch nicht funktioniert, wäre es schön, wenn Du mir Deine Datei mal zukommen lassen würdest. Du kannst alles, was mich nichts angeht aus der Datei löschen. Schicke die Datei dann an die E-Mail:coros@excelbeispiele.de.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 10 von Fischi40
Hallo, coros....
echt super funzt 1a ich danke dir...
MfG Mario :)
echt super funzt 1a ich danke dir...
MfG Mario :)
Antwort 11 von Fischi40
Hallo...
muss doch nochmal was Fragen.
Nachdem ich abgespeichert habe speichert er die Farbe der aktiven Zelle als normale Zellfarbe sodass die Zellfarbe in der einen Zelle nach dem neuöffnen nicht mehr wechselt da die aktive Farbe und die Zellfarbe nun identisch sind.
Für einen Rat wäre ich echt dankbar...
MfG Mario
muss doch nochmal was Fragen.
Nachdem ich abgespeichert habe speichert er die Farbe der aktiven Zelle als normale Zellfarbe sodass die Zellfarbe in der einen Zelle nach dem neuöffnen nicht mehr wechselt da die aktive Farbe und die Zellfarbe nun identisch sind.
Für einen Rat wäre ich echt dankbar...
MfG Mario
Antwort 12 von coros
Moin Mario,
kopiere nachfolgenden Code in das VBA Projekt "DieseArbeitsmappe".
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveCell.Interior.ColorIndex = AlteFarbe
End Sub
Mit dem Code wird bevor gespeichert wird, wieder die alte Farbe hergestellt.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
kopiere nachfolgenden Code in das VBA Projekt "DieseArbeitsmappe".
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveCell.Interior.ColorIndex = AlteFarbe
End Sub
Mit dem Code wird bevor gespeichert wird, wieder die alte Farbe hergestellt.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 13 von woher
Hallo,
ich möchte das Makro so wie in Antwort 4 auch gerne benutzen. Aber ebenfalls ohne "If Target count......" und ohne "Protect......", "Unprotect......". Diese Zeilen habe ich gelöscht.
Wenn der markierte Bereich aber unterschiedlich farbig markierte Zellen enthält, kommt folgende Fehlermeldung: "Laufzeitfehler 94
Unzulässige Verwendung von Null"
Wie unterbinde ich die?
mfg
woher
ich möchte das Makro so wie in Antwort 4 auch gerne benutzen. Aber ebenfalls ohne "If Target count......" und ohne "Protect......", "Unprotect......". Diese Zeilen habe ich gelöscht.
Wenn der markierte Bereich aber unterschiedlich farbig markierte Zellen enthält, kommt folgende Fehlermeldung: "Laufzeitfehler 94
Unzulässige Verwendung von Null"
Wie unterbinde ich die?
mfg
woher
Antwort 14 von minimaxler
@fischi
Hab dein Code eingegeben und es funzt soweit.
wie kann ich denn das Ekelhafte Grün wechseln?
und ist es nun nicht mehr möglich die anderen Zellen mit Füllfarbe zu füllen?
Hab keine Füllfarbe mehr zur Verfügung.
Danke Ingo
Hab dein Code eingegeben und es funzt soweit.
wie kann ich denn das Ekelhafte Grün wechseln?
und ist es nun nicht mehr möglich die anderen Zellen mit Füllfarbe zu füllen?
Hab keine Füllfarbe mehr zur Verfügung.
Danke Ingo
Antwort 15 von minimaxler
Achso
Die schaltfläche rückgängig geht jetzt auch nicht mehr
Die schaltfläche rückgängig geht jetzt auch nicht mehr
Antwort 16 von woher
Halo Minimaxler,
folgender Link wurde mir kürzlich auf eine andere Frage hin geschickt:
http://excelabc.de/excel/et/excel.php?Seite=et00026
im Makro steht 3x ColuorIndex 19, lösche die 19 und ersetze sie durch eine Zahl aus der ColourIndex-Übersicht.
Zur Füllfarbe: Am Beginn des Makros wird der Blattschutz aufgehoben, am Ende neu gesetzt! Lösche diese Zeilen wenn du sie nicht brauchst.
mfg
woher
folgender Link wurde mir kürzlich auf eine andere Frage hin geschickt:
http://excelabc.de/excel/et/excel.php?Seite=et00026
im Makro steht 3x ColuorIndex 19, lösche die 19 und ersetze sie durch eine Zahl aus der ColourIndex-Übersicht.
Zur Füllfarbe: Am Beginn des Makros wird der Blattschutz aufgehoben, am Ende neu gesetzt! Lösche diese Zeilen wenn du sie nicht brauchst.
mfg
woher
Antwort 17 von woher
Hallo,
noch eine Ergänzung erbeten:
Ich möchte das Makro in das VBA-Projekt "DieseArbeitsmappe" einfügen, damit es in allen Tabellenblättern aktiv ist. Was muss geändert werden?
Vielen dank im voraus
mfg
woher
noch eine Ergänzung erbeten:
Ich möchte das Makro in das VBA-Projekt "DieseArbeitsmappe" einfügen, damit es in allen Tabellenblättern aktiv ist. Was muss geändert werden?
Vielen dank im voraus
mfg
woher
Antwort 18 von minimaxler
@woher
Der Link funzt nicht
Der Link funzt nicht
Antwort 19 von woher
Hallo,
als Link funktioniert das tatsächlich seltsamerweise nicht.
Markiere den Text, kopiere + füge ins Adressfeld ein, dann gehts.
http://excelabc.de/excel/et/excel.php?Seite=et00026
mfg
woher
als Link funktioniert das tatsächlich seltsamerweise nicht.
Markiere den Text, kopiere + füge ins Adressfeld ein, dann gehts.
http://excelabc.de/excel/et/excel.php?Seite=et00026
mfg
woher
Antwort 20 von minimaxler
Jepp
Funzt.
Aber was muß ich tun damit die anderen zellen ihre farbe behalten.
Und das feld rückgängig geht auch nimmer
Funzt.
Aber was muß ich tun damit die anderen zellen ihre farbe behalten.
Und das feld rückgängig geht auch nimmer
Antwort 21 von woher
Hallo Minimaxler,
unmittelbar nach dem Ausführen eines Makro funktioniert "Rückgängig" NIE.
Da dieses Makro permanent aktiv ist funktioniert "Rückgängig" NIE.
Was meinst du mit:
Aber was muß ich tun damit die anderen zellen ihre farbe behalten. Welche anderen Zellen?
In Antwort 14 hast du geschrieben:
und ist es nun nicht mehr möglich die anderen Zellen mit Füllfarbe zu füllen? Hab keine Füllfarbe mehr zur Verfügung.
Wie sieht das Makro bei dir im Moment aus?
mfg
woher
unmittelbar nach dem Ausführen eines Makro funktioniert "Rückgängig" NIE.
Da dieses Makro permanent aktiv ist funktioniert "Rückgängig" NIE.
Was meinst du mit:
Aber was muß ich tun damit die anderen zellen ihre farbe behalten. Welche anderen Zellen?
In Antwort 14 hast du geschrieben:
und ist es nun nicht mehr möglich die anderen Zellen mit Füllfarbe zu füllen? Hab keine Füllfarbe mehr zur Verfügung.
Wie sieht das Makro bei dir im Moment aus?
mfg
woher
Antwort 22 von minimaxler
so sieht das Makro aus:
Option Explicit
Dim AlteFarbe As Integer, MarkierteZelle As String
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
ActiveSheet.Unprotect "Test"
If MarkierteZelle = "" Then
MarkierteZelle = Target.Address
AlteFarbe = Target.Interior.ColorIndex
Target.Interior.ColorIndex = 4
Else
If Range(MarkierteZelle).Interior.ColorIndex = 4 Then
Range(MarkierteZelle).Interior.ColorIndex = AlteFarbe
End If
AlteFarbe = Target.Interior.ColorIndex
MarkierteZelle = Target.Address
Target.Interior.ColorIndex = 4
End If
ActiveSheet.Protect "Test"
End Sub
und da geht kein rückgängig mehr falls man mal was falsches eingibt.
Und es gibt keine füllfarbe mehr wenn ich was Kennzeichnen will.
ich wäre auch bereit die datei per Mail zu senden.
Danke für die Hilfe.
gruß Ingo
Option Explicit
Dim AlteFarbe As Integer, MarkierteZelle As String
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
ActiveSheet.Unprotect "Test"
If MarkierteZelle = "" Then
MarkierteZelle = Target.Address
AlteFarbe = Target.Interior.ColorIndex
Target.Interior.ColorIndex = 4
Else
If Range(MarkierteZelle).Interior.ColorIndex = 4 Then
Range(MarkierteZelle).Interior.ColorIndex = AlteFarbe
End If
AlteFarbe = Target.Interior.ColorIndex
MarkierteZelle = Target.Address
Target.Interior.ColorIndex = 4
End If
ActiveSheet.Protect "Test"
End Sub
und da geht kein rückgängig mehr falls man mal was falsches eingibt.
Und es gibt keine füllfarbe mehr wenn ich was Kennzeichnen will.
ich wäre auch bereit die datei per Mail zu senden.
Danke für die Hilfe.
gruß Ingo
Antwort 23 von woher
Hallo,
lies mal meine Antwort betreffs Rückgängig und lies weiter oben zu Blattschutz.
mfg
woher
lies mal meine Antwort betreffs Rückgängig und lies weiter oben zu Blattschutz.
mfg
woher
Antwort 24 von minimaxler
Mit dem rückgängig muß ich dann wohl Leben.
Aber was muß ich löschen für den Blattschutz
wenn ich auf Blattschutz Aufheben gehe will er immer ein Passwort.
Aber was muß ich löschen für den Blattschutz
wenn ich auf Blattschutz Aufheben gehe will er immer ein Passwort.
Antwort 25 von woher
Hallo,
bitte immer erst lesen! Das hilft!
ActiveSheet.Unprotect "Test"
ActiveSheet.Protect "Test"
Lösch dies 2 Zeilen aus dem Makro.
mfg
woher
bitte immer erst lesen! Das hilft!
ActiveSheet.Unprotect "Test"
ActiveSheet.Protect "Test"
Lösch dies 2 Zeilen aus dem Makro.
mfg
woher
Antwort 26 von minimaxler
Ja ich weiss
Aber mit dem englisch isses a Weile her
Aber mit dem englisch isses a Weile her
Antwort 27 von minimaxler
Jetzt kommt Laufzeitfehler 1004
die ColorIndex eigenschaft des interior-Objekts kann nicht festgelegt werden.
Was immer das auch heisst
die ColorIndex eigenschaft des interior-Objekts kann nicht festgelegt werden.
Was immer das auch heisst
Antwort 28 von woher
Hallo,
so sieht das Makro bei mir z.Z. aus:
Option Explicit
Dim AlteFarbe As Integer, MarkierteZelle As String
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If MarkierteZelle = "" Then
MarkierteZelle = Target.Address
AlteFarbe = Target.Interior.ColorIndex
Target.Interior.ColorIndex = 4
Else
If Range(MarkierteZelle).Interior.ColorIndex = 4 Then
Range(MarkierteZelle).Interior.ColorIndex = AlteFarbe
End If
AlteFarbe = Target.Interior.ColorIndex
MarkierteZelle = Target.Address
Target.Interior.ColorIndex = 4
End If
End Sub
Beachte aber bitte auch die Antworten11, 12
und die 13 wegen der Fehlermeldung bei mir.
mfg
woher
so sieht das Makro bei mir z.Z. aus:
Option Explicit
Dim AlteFarbe As Integer, MarkierteZelle As String
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If MarkierteZelle = "" Then
MarkierteZelle = Target.Address
AlteFarbe = Target.Interior.ColorIndex
Target.Interior.ColorIndex = 4
Else
If Range(MarkierteZelle).Interior.ColorIndex = 4 Then
Range(MarkierteZelle).Interior.ColorIndex = AlteFarbe
End If
AlteFarbe = Target.Interior.ColorIndex
MarkierteZelle = Target.Address
Target.Interior.ColorIndex = 4
End If
End Sub
Beachte aber bitte auch die Antworten11, 12
und die 13 wegen der Fehlermeldung bei mir.
mfg
woher
Antwort 29 von allesbesserwiss
Da nicht-Memer keine veralteten threads fortführen können sei
an dieser stelle auch ´mal auf https://supportnet.de/threads/1345202 verwiesen...
an dieser stelle auch ´mal auf https://supportnet.de/threads/1345202 verwiesen...

