Supportnet / Forum / Tabellenkalkulation
Fenster fixieren / Bedingte Formatierungen
Frage
Hallo,
ich habe zwei Fragen.
1. Gibt es eine Möglichkeit, in mehreren Tabellenblättern in einer Arbeitsmappe gleichzeitig die Fenster zu fixieren? Z. B. habe ich für jeden Monat ein Tabellenblatt, und alle sollen gleich fixiert werden.
2. Ähnliches Problem mit bedingten Formatierungen. Auf mehreren Tabellenblättern bräuchte ich bedingte Formatierungen, die nur dann z. B. rot-fett liefern sollen in Zelle C5, wenn eine bestimmte Zahl in Zelle D5 steht. Geht das irgendwie, dass ich diese bedingte Formatierung auf mehreren Blättenr gleichzeitig durchführen kann? Bei normalen Formeln funktionierts ja.
Vielen Dank im Voraus
MoRe99
Antwort 1 von Guenter
Hallo,
zu 1.
Das Makro läuft alle Tabellenblätter durch und fixiert die erste Zeile.
Gruß
Günter
zu 1.
Option Explicit
Sub Makro1()
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
Rows("2:2").Select
ActiveWindow.FreezePanes = True
Next n
End Sub
Das Makro läuft alle Tabellenblätter durch und fixiert die erste Zeile.
Gruß
Günter
Antwort 2 von coros
Moin,
die erste Frage hat Günther ja schon gelöst. Nachfolgender Code löst Deine 2. Frage. Kopiere den Code in das VBA Projekt "Deine Arbeitsmappe.
In jedem Tabellenblatt wird der Eintrag in D5 fett und die Schriftfarbe rot, wenn in C5 eine 10 eingetragen wird. Wenn der Code auf eine ander Zahl reagieren soll al auf die 10, dann ändere die Zahl in der Zeile
If Range("C5") = 10 Then
gegen eine andere.
Da ich nicht weiß, ob Du Dich auch nicht mit VBA (Visual Basic) auskennst, kommt hier eine kurze Anweisung, wie Du den Code in Deine Tabelle bekommst.
1. Markiere die Anweisung aus diesem Beitrag und Kopiere (Strg c) diese.
2. Klicke in Deiner Exceldatei in der Menüleiste nacheinander auf Extras => Makro => Visual Basic Editor oder drücke die Tastenkombination Alt F11
3. In dem neu geöffneten Fenster suche auf der linken Seite nach dem Eintrag VBA Projekt(Hier der Name Deiner Tabelle)
4. Klicke danach auf den Eintrag Diese Arbeitsmappe
5. Füge nun die vorher kopierte Anweisung in das rechte leere Fenster ein.
Du solltest zum Abschluss noch die Sicherheitseinstellung, die beim Öffnen der Datei abgefragt wird, kontrollieren. Klicke dazu nacheinander in der Menüleiste wieder auf Extras => Makro und dann auf Sicherheit.... Gehe, falls nicht schon angezeigt, auf die Registerkarte Sicherheitsstufe und schaue dort nach, ob die Einstellung Mittel aktiviert ist. Wenn nicht, aktiviere diese Einstellung, da sonst der Code nicht ausgeführt werden kann. Beim nächsten Öffnen Deiner Datei kommt eine Abfrage, ob Makros aktiviert oder deaktiviert werden sollen. Klicke auf aktivieren und der Code wird ausgeführt.
Ich hoffe, der Code hilft Dir wieter.
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.
die erste Frage hat Günther ja schon gelöst. Nachfolgender Code löst Deine 2. Frage. Kopiere den Code in das VBA Projekt "Deine Arbeitsmappe.
Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Range)
If Range("C5") = 10 Then
Range("D5").Font.ColorIndex = 3
Range("D5").Font.Bold = True
Else
Range("D5").Font.ColorIndex = 0
Range("D5").Font.Bold = False
End If
End Sub
In jedem Tabellenblatt wird der Eintrag in D5 fett und die Schriftfarbe rot, wenn in C5 eine 10 eingetragen wird. Wenn der Code auf eine ander Zahl reagieren soll al auf die 10, dann ändere die Zahl in der Zeile
If Range("C5") = 10 Then
gegen eine andere.
Da ich nicht weiß, ob Du Dich auch nicht mit VBA (Visual Basic) auskennst, kommt hier eine kurze Anweisung, wie Du den Code in Deine Tabelle bekommst.
1. Markiere die Anweisung aus diesem Beitrag und Kopiere (Strg c) diese.
2. Klicke in Deiner Exceldatei in der Menüleiste nacheinander auf Extras => Makro => Visual Basic Editor oder drücke die Tastenkombination Alt F11
3. In dem neu geöffneten Fenster suche auf der linken Seite nach dem Eintrag VBA Projekt(Hier der Name Deiner Tabelle)
4. Klicke danach auf den Eintrag Diese Arbeitsmappe
5. Füge nun die vorher kopierte Anweisung in das rechte leere Fenster ein.
Du solltest zum Abschluss noch die Sicherheitseinstellung, die beim Öffnen der Datei abgefragt wird, kontrollieren. Klicke dazu nacheinander in der Menüleiste wieder auf Extras => Makro und dann auf Sicherheit.... Gehe, falls nicht schon angezeigt, auf die Registerkarte Sicherheitsstufe und schaue dort nach, ob die Einstellung Mittel aktiviert ist. Wenn nicht, aktiviere diese Einstellung, da sonst der Code nicht ausgeführt werden kann. Beim nächsten Öffnen Deiner Datei kommt eine Abfrage, ob Makros aktiviert oder deaktiviert werden sollen. Klicke auf aktivieren und der Code wird ausgeführt.
Ich hoffe, der Code hilft Dir wieter.
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 3 von MoRe99
Hallo Günter, hallo coros,
erstmal danke für die Lösungsvorschläge. Mit VBA kenne ich mich leider fast gar nicht aus, von daher war die Anleitung von dir, coros, sehr passend. Momentan bin ich etwas knapp mit meiner Zeit, aber nach dem WE sollte ich dazu kommen, das ganze auszuprobieren. Werde mich dann wieder melden.
Eine (Nach-)Frage noch zu Günters Lösungsvorschlag mit dem Fixieren: wie muss ich den Code abändern, dass die ersten beiden Zeilen sowie die erste Spalte fixiert werden? Also die Zelle B3 soll die oberste linke Zelle sein, die nicht fixiert ist.
Gruß
MoRe99
erstmal danke für die Lösungsvorschläge. Mit VBA kenne ich mich leider fast gar nicht aus, von daher war die Anleitung von dir, coros, sehr passend. Momentan bin ich etwas knapp mit meiner Zeit, aber nach dem WE sollte ich dazu kommen, das ganze auszuprobieren. Werde mich dann wieder melden.
Eine (Nach-)Frage noch zu Günters Lösungsvorschlag mit dem Fixieren: wie muss ich den Code abändern, dass die ersten beiden Zeilen sowie die erste Spalte fixiert werden? Also die Zelle B3 soll die oberste linke Zelle sein, die nicht fixiert ist.
Gruß
MoRe99
Antwort 4 von Guenter
Hallo,
das geht dann so:
Gruß
GÜnter
das geht dann so:
Option Explicit
Sub Makro1()
Dim n%
For n = 1 To Worksheets.Count
Worksheets(n).Activate
Range("B3").Select
ActiveWindow.FreezePanes = True
Next n
End Sub
Gruß
GÜnter
Antwort 5 von want2cu
Hallo,
Frage 1 läßt sich nur mit VBA lösen. Dazu hast du ja schon Lösungen bekommen.
Frage 2 kann man aber auch ganz gut OHNE VBA lösen.
Markiere dazu einfach alle Tabellenreiter (Rechtsklick - alle Blätter markieren), dann gilt die bedingte Formatierung gleichzeitig für alle Tabellenblätter (so wie Einträge und Formeln ja auch).
Nur das Fenster-fixieren läßt sich auf diese Weise leider nicht realisieren.
CU
want2cu
Frage 1 läßt sich nur mit VBA lösen. Dazu hast du ja schon Lösungen bekommen.
Frage 2 kann man aber auch ganz gut OHNE VBA lösen.
Markiere dazu einfach alle Tabellenreiter (Rechtsklick - alle Blätter markieren), dann gilt die bedingte Formatierung gleichzeitig für alle Tabellenblätter (so wie Einträge und Formeln ja auch).
Nur das Fenster-fixieren läßt sich auf diese Weise leider nicht realisieren.
CU
want2cu
Antwort 6 von MoRe99
Danke für die Änderung, damit die Fixierung richtig ist. Danke, Günter!
@ want2cu: seltsam, irgendwie bin ich der Meinung, dass dein Vorschlag zu 2. bei mir die ganze Zeit nicht klappte. Eben probiert, und es funktioniert. Muss ich aber mal mit meiner größeren Tabelle, um die es eigentlich geht, nach dem WE testen. Irgendwie klappte da was nicht; bin ich mir sicher. Mal schauen. Dennoch danke für deine Hinweise!
@ want2cu: seltsam, irgendwie bin ich der Meinung, dass dein Vorschlag zu 2. bei mir die ganze Zeit nicht klappte. Eben probiert, und es funktioniert. Muss ich aber mal mit meiner größeren Tabelle, um die es eigentlich geht, nach dem WE testen. Irgendwie klappte da was nicht; bin ich mir sicher. Mal schauen. Dennoch danke für deine Hinweise!

