Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Aktive Zelle färbt sich nach Einfügen eines Makro automatisch schwarz
#1
Exclamation 
Hallo wieder mal,

ich habe ein Problem mit meiner Arbeitsmappe.

Wenn ich direkt bei einem Arbeitsblatt nachfolgendes Makro einfüge, färbt sich die Füllung der aktiven Zelle immer schwarz. Egal, welchen Farbcode ich eingebe.

Wenn ich dann auf eine andere Zelle springe, färbt die vorherige Zelle sich wieder wie gewollt mit der ursprünglichen Farbe und die nun aktive Zelle wird schwarz.

Irgendwo habe ich einen Fehler drin oder evtl. auch direkt in Excel unwissentlich einen Fehler eingebaut. Bzw. in den Einstellungen versehentlich was verstellt.

Alle anderen Arbeitsblätter ohne das unten angeführte Makro bleiben wie immer. Nur färbt sich die aktive Zelle gar nicht anders.

Kann mir wer helfen? Huh  Huh  Huh

Besten Dank   Bernie   Private



Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error GoTo Fehler

Cells.FormatConditions.Delete

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _ Formula1:="="
Selection.FormatConditions(1).Interior.Color = 6   'Hier steht der Farbcode, trotz Änderung wird die aktive Zelle immer schwarz gefüllt
Err.Clear

Fehler:

If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear

End Sub

[size=xx-small]
[Bild: Testblatt.jpg]
Zitieren
#2
(16.03.2023, 12:00)bhollerith schrieb: Hallo wieder mal,

ich habe ein Problem mit meiner Arbeitsmappe.

Wenn ich direkt bei einem Arbeitsblatt nachfolgendes Makro einfüge, färbt sich die Füllung der aktiven Zelle immer schwarz. Egal, welchen Farbcode ich eingebe.

Wenn ich dann auf eine andere Zelle springe, färbt die vorherige Zelle sich wieder wie gewollt mit der ursprünglichen Farbe und die nun aktive Zelle wird schwarz.

Irgendwo habe ich einen Fehler drin oder evtl. auch direkt in Excel unwissentlich einen Fehler eingebaut. Bzw. in den Einstellungen versehentlich was verstellt.

Alle anderen Arbeitsblätter ohne das unten angeführte Makro bleiben wie immer. Nur färbt sich die aktive Zelle gar nicht anders.

Kann mir wer helfen? Huh  Huh  Huh

Besten Dank   Bernie   Private



Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error GoTo Fehler

Cells.FormatConditions.Delete

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _ Formula1:="="
Selection.FormatConditions(1).Interior.Color = 6   'Hier steht der Farbcode, trotz Änderung wird die aktive Zelle immer schwarz gefüllt
Err.Clear

Fehler:

If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear

End Sub

[size=xx-small]
[Bild: Testblatt.jpg]


Sorry. Ganz am Anfang hab ich vergessen, das Private mitzukopieren.

Die erste Zeile heißt:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Zitieren
#3
Hallo,

ich habe mir erlaubt, die Größenangabe der Schrift in Deinem Beitrag zurückzusetzen. Das war sehr groß und wirkte laut,
was sicherlich nicht Deine Absicht war. Zum Vergrößern der Ansicht kann man ja auch den Browser verwenden Strg+Mausrad.

Was die Frage betrifft: nun ja, Du hast im Makro als Farbe Color = 6 angegeben. Das ist sehr nahe an der 0 = Schwarz.
Wenn Du eine Farbe aus der Palette angeben möchtest, müsstest Du ColorIndex statt Color verwenden. Oder Du gibst
die Farbe direkt als RGB-Wert an. Zum Beispiel so ...

PHP-Code:
Selection.FormatConditions(1).Interior.Color RGB(128128128

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 01/2011 - 06/2019 :: 04/2020 - 06/2022
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner (neu)
Zitieren
#4
(16.03.2023, 12:35)maninweb schrieb: Hallo,

ich habe mir erlaubt, die Größenangabe der Schrift in Deinem Beitrag zurückzusetzen. Das war sehr groß und wirkte laut,
was sicherlich nicht Deine Absicht war. Zum Vergrößern der Ansicht kann man ja auch den Browser verwenden Strg+Mausrad.

Was die Frage betrifft: nun ja, Du hast im Makro als Farbe Color = 6 angegeben. Das ist sehr nahe an der 0 = Schwarz.
Wenn Du eine Farbe aus der Palette angeben möchtest, müsstest Du ColorIndex statt Color verwenden. Oder Du gibst
die Farbe direkt als RGB-Wert an. Zum Beispiel so ...

PHP-Code:
Selection.FormatConditions(1).Interior.Color RGB(128128128

Gruß
Hallo 'maninweb'

Super. Genau das hat jetzt geholfen. Es funktioniert wie ich es mir vorgestellt hab.

Allerbesten Dank.

Wegen der Schriftart konnte ich wirklich nichts dafür. Bei mir spinnt derzeit der Computer immer wieder mal und macht was er will. Ich wollte auch die Schriftgröße nachträglich ändern. Ging aber nicht.

Kann ich Dich evtl. kurz mal anmailen wegen ein paar weiterer Probleme meiner Mappe?

Ich bin ja wie schon mehrmals gesagt noch Anfänger. Da sind meine 'Probleme' wahrscheinlich für Profis ein Klacks.

Ich will nicht die User hier nerven und wegen jeder Kleinigkeit ein Thema erstellen.

Gruß

Bernie aus der Holledau
Zitieren
#5
Hallo,

schön, dass ich Dir helfen konnte. Nein, bitte keine Mails oder PNs. Stelle die Fragen bitte im Forum, denn so haben auch andere Forumsbesucher
sowohl was von der Frage als auch den Antworten. Schließlich möchten wir hier alle von der Erfahrungen anderer lernen.

PS: Du musst nicht jeden Beitrag zitieren.

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 01/2011 - 06/2019 :: 04/2020 - 06/2022
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner (neu)
Zitieren
#6
Servus Mani,

Danke, dann muss ich es mit Schreiben versuchen. Ich kann keine Dateien mit Makros exportieren. So wär hat die Chance gewesen, dass ich die Excel Datei irgendwie versende. Damit ist besser zu arbeiten als mit Beschreibungen.
Hier meine Fragen:


- Wenn ich den Blattschutz setze, kann ich in der Schnellzugriffsleiste zwar die Eingabemaske aufrufen, aber es sind Möglichkeiten ausgegraut:

"Neu" "Löschen" und "Wiederherstellen"

Ausserdem kann ich keine Eingaben mehr machen


- Wenn ich den Button "Blattnavigation" klicke, ist die Navigationsleiste entweder zu sehen oder nicht zu sehen (mit Active Visible oder Not Active Visible)

Gibt es eine Möglichkeit, dass die Navigationsleiste automatisch Nicht Visible ist, wenn ich in ein anderes Blatt wechsle und dann wieder zurückwechsle?


- Ich habe ein Makro, mit dem ein neues Blatt angelegt wird. Davor fragt es nach dem Blattnamen. Wenn ich nichts eingebe, kommt eine Fehlermeldung, das Makro beendet sich und es wird ein neues Blatt mit dem alten Blattnamen und (2) angelegt.

- Gibt es eine Möglichkeit, dass ein Teil des Blattnamens bereits vorgegeben ist und lediglich die Jahreszahl noch benötigt wird? Und kann man das Makro so programmieren, dass bei Doppelbenennung gesagt wird "Blatt existiert bereits" und wieder die Abragegrundmaske erscheint? Natürlich mit der Möglichkeit, das Anlegen ganz abzubrechen? Mich stört die Standardfehlermeldung von Excel.

Hier die Makros: Mustermakros

Sub Hamburger_Führungen_2023()
ActiveSheet.Shapes("Führungen 2023").Visible = Not ActiveSheet.Shapes("Führungen 2023").Visible
End Sub

'Blatt Hospitationen erstellen
Sub Hospitationen_erstellen()
Sheets("Hospitationen Neu").Select
Sheets("Hospitationen Neu").Copy after:=Sheets(3)
Sheets("Hospitationen Neu (2)").Select
Blattname = InputBox("Welchen Namen soll das neue Blatt haben?" & Chr$(10) & Chr$(10) & "(Name und Jahr)" & Chr$(10) & Chr$(10) & "z.B.: Hospitationen 2024" & Chr$(10) & Chr$(10) & "(Bitte den Namen wie im Beispiel angegeben)")
ActiveSheet.Name = Blattname
End Sub

Ich hoffe, das alles ist nicht zu kompliziert.
Vielen Dank schon Mal

Bernie
Zitieren
#7
Hallo,

Im Dialog zum Blattschutz kannst Du festlegen, welche Aktionen erlaubt sein sollen oder nicht. Das geht auch mit VBA, indem Du dort beim
Blattschutz für die Methode Protect entsprechende Parameter setzt. Generell ist eine einfache Möglichkeit, Probleme mit dem Blattschutz in
VBA zu vermeiden, indem Du vor einer Änderung per VBA den Blattschutz per Code aufhebst - Worksheets(...).Unprotect - und nach
dem Durchlauf wieder setzt - Worksheets(...).Protect. Ggf. Cursor auf Protect setzen und F1 drücken, für Hilfe.

Wenn Du trotz Blattschutz Eingaben möchtest, musst Du vor dem Setzen des Blattschutzes die Zelle entsperren. Zelle rechts anklicken,
Zellen formatieren, Reiter Schutz, Häkchen entfernen.

Was meinst Du mit Navigationsleiste? Eine eigene? Wenn Ja, dann könntest Du die Prozedur bzw. den Code im Ereignis Worksheet_Activate
bzw. Worksheet_Deactivate vom entsprechenden Tabellenblatt schreiben.

InputBox hat mehrere Parameter, bei einem kannst Du einen Standardwert vorgeben kannst: ("Welchen ... ... ", , "Hospitationen")

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 01/2011 - 06/2019 :: 04/2020 - 06/2022
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner (neu)
Zitieren
#8
Wie meinst Du?

'Blatt Führungen erstellen
Sub Führungen_erstellen()
Sheets("Führungen Neu").Select
Sheets("Führungen Neu").Copy after:=Sheets(3)
Sheets("Führungen Neu (2)").Select
Blattname = InputBox("Welchen Namen soll das neue Blatt haben?" & Chr$(10) & Chr$(10) & "(Name und Jahr)" & Chr$(10) & Chr$(10) & "z.B.: Führungen 2024" & Chr$(10) & Chr$(10) & "(Bitte den Namen wie im Beispiel angegeben),"Hospitationen")
ActiveSheet.Name = Blattname
End Sub

So bekomme ich eine Fehlermeldung
Zitieren
#9
Und ich hab mein Anliegen vielleicht nicht richtig formuliert.

Das neue Blatt soll nur noch die Jahreszahl als Eingabemöglichkeit haben. Wenn dann das Blatt erstellt wird, heisst es dann automatisch z.B. "Hospitationen 2024".

Das Wort Hospitaionen wird bereits von Excel eingefügt.

BEISPIEL:

Das steht bereits, wenn die Maske erscheint:

Welchen Namen soll das neue Blatthaben?

z.B.: Hospitationen 2024

(Bitte den Namen wie im Beispiel angegeben)

Dann kommt das Eingabefeld

Dabei soll links bereits vorgegeben sein: Hospitationen

Eingeben kann man dann nur noch das Jahr

Der fertige Blattname lautet aber dann: "Hospitationen "Jahr" Jahr steht für die Jahreszahl
Zitieren
#10
Hallo,

Nicht so ... wie im Beispiel angegeben),"Hospitationen") sondern so und mit zwei Kommas: ... wie im Beispiel angegeben", , "Hospitationen")

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 01/2011 - 06/2019 :: 04/2020 - 06/2022
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner (neu)
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions