Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

bedingte Formatierung wenn benachbarte Zelle ausgeblendet

254 views
Skip to first unread message

Andreas

unread,
Jul 21, 2010, 4:11:29 AM7/21/10
to
Hallo,

wie kann ich Excel beibringen, eine Zelle nach Vorgabe zu formatieren,
wenn eine direkt benachbarte Zelle in einer ausgeblendeten Spalte
ist.
I-Tüpfelchen wäre, wenn je eine Zelle in den beiden sichtbaren Spalten
formatiert würde, zwischen denen sich die ausgeblendete(n) Spalten
befinden.

Geht sowas?
Wenn ja, wie?

Ich freu mich auf Antworten schon jetzt! ;-)

Sonnige Grüße,
Andreas

Andreas Killer

unread,
Jul 21, 2010, 12:38:04 PM7/21/10
to
Am 21.07.2010 10:11, schrieb Andreas:

> wie kann ich Excel beibringen, eine Zelle nach Vorgabe zu formatieren,
> wenn eine direkt benachbarte Zelle in einer ausgeblendeten Spalte
> ist.

Naja, das hat bestimmt einen Haken, aber Du könntest es mit einer UDF
probieren:

Function IsHidden(Zelle As Range, _
Optional SpalteOderZeile As Boolean = True) As Boolean
If SpalteOderZeile Then
IsHidden = Zelle.EntireColumn.Hidden
Else
IsHidden = Zelle.EntireRow.Hidden
End If
End Function

Und als Formel für die bedingte Formatierung von Zelle A1
=IsHidden(B1)
wenn Du prüfen möchtest ob Spalte B ausgeblendet ist.

BTW, zum Prüfen auf ausgeblendete Zeile =IsHidden(A2; 0)

Ich bin jedoch nicht sicher ob das zu immer geht...

Andreas.

Peter Schleif

unread,
Jul 21, 2010, 2:00:48 PM7/21/10
to
Andreas schrieb am 21.07.2010 10:11 Uhr:
>
> wie kann ich Excel beibringen, eine Zelle nach Vorgabe zu formatieren,
> wenn eine direkt benachbarte Zelle in einer ausgeblendeten Spalte
> ist.

Das geht nur mit einer VBA-Function, die Dir meldet, ob eine der
Nachbar-Spalten ausgeblendet ist. Dazu müsstest Du bitte unten stehenden
Code in ein Standard-VBA-Modul kopieren.

In der bedingten Formatierung kannst Du die Function dann wie folgt
benutzen. Hier als Beispiel für eine Zelle in Spalte E:

Formel ist: =hatAusgeblendeteNachbarn(E1)

Peter

Function hatAusgeblendeteNachbarn(r As Range) As Boolean
If r.Column = 1 Then
hatAusgeblendeteNachbarn = (r(1,2).EntireColumn.Hidden)
ElseIf r.Column = Columns.Count Then
hatAusgeblendeteNachbarn = (r(1,0).EntireColumn.Hidden)
Else
hatAusgeblendeteNachbarn = (r(1,0).EntireColumn.Hidden _
Or r(1,2).EntireColumn.Hidden)
End If
End Function

Alexander Wolff

unread,
Jul 21, 2010, 2:28:54 PM7/21/10
to
B1: Bedingte Formatierung FormelIst =ZELLE("Breite";A1)=0
--
Moin und Gruss Alexander (Excel 2000)

Peter Schleif

unread,
Jul 21, 2010, 2:47:52 PM7/21/10
to
Alexander Wolff schrieb am 21.07.2010 20:28 Uhr:
> B1: Bedingte Formatierung FormelIst =ZELLE("Breite";A1)=0

Gute Idee! Um beide Nachbarn abzudecken:

=ODER(ZELLE("Breite";A1)=0;ZELLE("Breite";C1)=0)

Allerdings versagt die Formel in der ersten/letzten Spalte.
Erstaunlicherweise erzeugt sie dort keinen Fehler, greift aber auf
falsche Spalten zu:

A1: =ODER(ZELLE("Breite";IV1)=0;ZELLE("Breite";B1)=0)
IV1: =ODER(ZELLE("Breite";IU1)=0;ZELLE("Breite";A1)=0)

(hier für die 256 Spalten von xl2002)

Peter

Alexander Wolff

unread,
Jul 21, 2010, 3:01:29 PM7/21/10
to
Peter Schleif wrote:
> Alexander Wolff schrieb am 21.07.2010 20:28 Uhr:
>> B1: Bedingte Formatierung FormelIst =ZELLE("Breite";A1)=0
>
> Gute Idee! Um beide Nachbarn abzudecken:
>
> =ODER(ZELLE("Breite";A1)=0;ZELLE("Breite";C1)=0)
>
> Allerdings versagt die Formel in der ersten/letzten Spalte.

Das ist kein Versagen, sondern funktioniert auch bei bestimmten
anderen Funktionen so, wenn Randbezüge durch Kopieren
überschritten werden. Statt lästiger Fehler #BEZUG! wird der
Bezug - genauso lästig - rollierend uminterpretiert. Das Rollieren
hat allerdings aus akademischer Sicht einen Vorteil: Kopiert man
die Formel in den "gültigen" Bereich, folgt sie wieder der
ursprünglichen Intention.

Ansonsten:
=ZELLE("Breite";A1)*ZELLE("Breite";C1)=0
reicht aus

Peter Schleif

unread,
Jul 21, 2010, 3:21:54 PM7/21/10
to
Alexander Wolff schrieb am 21.07.2010 21:01 Uhr:
>
> Das ist kein Versagen

Doch. Sie versagt, weil sie falsche Werte/Formatierungen liefert

- bedingte Formatierung mit der Formel in A1
- Spalte B nicht ausgeblendet
- Spalte IV ausgeblendet

Nun wird die bedingte Formatierung angewendet, was sicherlich nicht im
Sinne des Erfinders ist. Gleiches passiert am rechten Rand, wenn Spalte
A ausgeblendet ist.

Peter

Alexander Wolff

unread,
Jul 21, 2010, 3:58:11 PM7/21/10
to

Aber OP reichte doch Dein ODER(), er brauchte kein UND() - also
ist doch alles ok. Deshalb weiß ich grad nicht, was Du genau
meinst. Ich weiß jetzt auch nicht, ob das Rollieren für Dich
selbstverständlich ist oder nicht.

Peter Schleif

unread,
Jul 22, 2010, 2:18:37 AM7/22/10
to
Alexander Wolff schrieb am 21.07.2010 21:58 Uhr:
>
> Deshalb weiß ich grad nicht, was Du genau meinst.

Das Rollieren/Überlauf ist in diesem Fall kontraproduktiv. Es führt u.U
zu falscher Formatierung. Probiere es doch einfach aus:

- Schreibe die ODER-Formel in die bedingte Formatierung für B1
- Ziehe B1 nach A1 rüber
- Blende die letzte Spalte aus IV bzw. XFD

Nun wird A1 formatiert, so als wäre einer seiner Nachbarspalten
ausgeblendet. Das ist aber - nach menschlichem Verständnis - nicht der
Fall. Denn A1 hat ja nur einen Nachbarn: Spalte B - und die ist _nicht_
ausgeblendet.

Peter

Alexander Wolff

unread,
Jul 22, 2010, 2:45:27 AM7/22/10
to
"Peter Schleif" <peter....@gmx.de> schrieb im Newsbeitrag
news:i28nrs$sqf$1...@news.albasani.net...

> - Schreibe die ODER-Formel in die bedingte Formatierung für B1
> - Ziehe B1 nach A1 rüber
> - Blende die letzte Spalte aus IV bzw. XFD
>
> Nun wird A1 formatiert, so als wäre einer seiner Nachbarspalten
> ausgeblendet. Das ist aber - nach menschlichem Verständnis - nicht der
> Fall. Denn A1 hat ja nur einen Nachbarn: Spalte B - und die ist _nicht_
> ausgeblendet.

Gut, aber das ist doch nur ein weiterer Aspekt des Rollierens. Unter dem
Rolliergesichtspunkt ist IV Nachbarspalte von A. Relevant ist es deshalb
nicht, weil in der ersten Spalte/den ersten Spalten doch eh immer
Beschriftungen stehen.
--
Moin+Gruss Alexander - MVP for MS Excel - www.xxcl.de - mso2000sp3 --7-2


Andreas

unread,
Jul 22, 2010, 3:18:06 AM7/22/10
to
Moinmoin,

das klingt doch alles schon funktionierend...! Und bestätigt sich nach
teilweisem ausprobieren auch.

Wie kann ich die bedingte Formatierung für das ganze Blatt vornehmen,
zumindest jedoch für eine ganze Zeile?
Muss für jede Zelle/Spalte eine eigenen Bedingung erstellt werden?

Kann ich Regeln für die Formatierung immer als Funktion hinterlegen
und so "selbst" loslegen? Wo kann man mehr darüber lesen?

Fragen über Fragen...
Grüße aus Stuttgart,
Andreas ;-)


Alexander Wolff

unread,
Jul 22, 2010, 9:08:19 AM7/22/10
to
Andreas wrote:
> Wie kann ich die bedingte Formatierung für das ganze Blatt
> vornehmen, zumindest jedoch für eine ganze Zeile?
> Muss für jede Zelle/Spalte eine eigenen Bedingung erstellt
> werden?

Klicke auf die graue 1, die vor der Zelle A1 steht
Nun: bed. F. =ZELLE("Breite";IV1)*ZELLE("Breite";B1)=0

> Kann ich Regeln für die Formatierung immer als Funktion
> hinterlegen und so "selbst" loslegen? Wo kann man mehr darüber
> lesen?

Das da oben sind Formeln, die Zellfunktionen verwenden. Das
Hinterlegen von benannten Funktionen (

A1: Einfügen Name Definieren NachbarAusgeblendet BezSichAuf
=ZELLE("Breite";IV1)*ZELLE("Breite";B1)=0

) spart zwar keinen Platz, erlaubt Dir aber dafür auch kein
irrtümliches Abweichen von dieser Formel.

Andreas

unread,
Jul 27, 2010, 8:35:13 AM7/27/10
to
DANKE allerseits, diese Problem konnte gelöst werden! ;-)
0 new messages