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?
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]
(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?
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]
Sorry. Ganz am Anfang hab ich vergessen, das Private mitzukopieren.
Die erste Zeile heißt:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
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(128, 128, 128)
Gruß
(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(128, 128, 128)
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
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ß
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
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ß
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
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
Hallo,
Nicht so ... wie im Beispiel angegeben),"Hospitationen") sondern so und mit zwei Kommas: ... wie im Beispiel angegeben", , "Hospitationen")
Gruß