Formel für benutzerdefinierte Gültigkeit

Bild

Betrifft: Formel für benutzerdefinierte Gültigkeit
von: roaky
Geschrieben am: 17.03.2005 09:52:40
Ich habe eine Frage, an der ich gestern den ganzen Tag wortwörtlich gekniffelt habe.

folgender Sachverhalt:

... B

1 240
2 246
3 248

Es geht um die Zellen B1 - B3. Ich benötige eine Formel, die als Kontrolle dient. Wenn der Nutzer dieser Mappe die Zelle B1 mit Werten füllt, dann dürfen diese nie höher als die der Zellen B2 und B3 sein - insofern in beiden oder eine der beiden Zellen Daten liegen. Wenn der Nutzer Werte in der Zelle B2 ablegen möchte, dann dürfen diese nie kleiner sein als die Werte in Zelle B1 (insofern dort Daten liegen) und nie größer sein als die Werte der Daten in Zelle B3 (insofern dort Daten liegen). Wenn der Nutzer letztlich Werte in B3 eingeben möchte, dann dürfen diese nie kleiner als die Werte in den Zellen B1 und B2 sein (insofern in eine der beiden oder in beiden Zellen Werte abgelegt sind).

Die Idee war, in Zelle B1 eine benutzerdefinierte Gültigkeit mit folgender Formel zu hinterlegen:
B1=(UND(B1 < B2;B1 < B3))
Für die Zelle B2 habe bin ich genauso mit folgender Formel verfahren:
B2=(UND(B2 > B1;B2 < B3))
Und in Zelle B3 ist folgende Gültigkeit definiert:
B3=(UND(B3 > B1;B3 > B2))

Diese Formel funktioniert aber nur, wenn jeweils in den beiden anderen Zellen Werte vorliegen. Sobald in mindestens einer der beiden anderen Zellen kein Wert liegt, funktioniert die Formel nicht mehr.
Es kann nämlich sein, dass mal die Zelle B3 mit Werten belegt wird (die beiden anderen Zellen sind noch leer) und erst später mindestens eine der anderen Zellen belegt wird.
Mal als Beispiel:
In Zelle B3 liegt ein Wert "120" vor und ich lege nun in der Zelle B1 einen Wert "140" ab. Hier bringt die Formel keine Nachricht an den Nutzer, das der Wert in B1 nie höher als der Wert in B3 sein darf.

Mhhhh echt komisch, ich weiß ni was ich an den Formeln ändern soll.

Vielleicht hat jemand ne Idee für mich?
Roaky

Bild

Betrifft: AW: Formel für benutzerdefinierte Gültigkeit
von: Matthias G
Geschrieben am: 17.03.2005 10:27:06
Hallo Roaky,
für B1:
=ODER(UND(ODER(B1<B2;B2="");ODER(B1<B3;B3=""));B2="")
für B2:
=ODER(UND(ODER(B2>B1;B1="");ODER(B2<B3;B3=""));B2="")
für B3:
=ODER(UND(ODER(B3>B1;B1="");ODER(B3>B2;B2=""));B3="")
Gruß Matthias
Bild

Betrifft: kleine Korrektur
von: Matthias G
Geschrieben am: 17.03.2005 10:34:11
Hallo,
für B1 muss es natürlich heißen:

=ODER(UND(ODER(B1<B2;B2="");ODER(B1<B3;B3=""));B1="")
Gruß Matthias
Bild

Betrifft: AW: Formel für benutzerdefinierte Gültigkeit
von: roaky
Geschrieben am: 17.03.2005 10:34:57
Hallo Matthias,
vielen Dank das du dir die Mühe gemacht hast, mir weiterzuhelfen.
Habs gleich mal versucht. Wenn ich jedoch zum Beispiel in B3 eine 120 einfüge (B1 und B2 sind leer) und nun in B1 eine 140 einfüge, dann kommt keine Fehlermeldung obwohl dies ja nicht sein darf. Wenn zum Beispiel in B1 eine 120 steht, in B2 eine 125 steht und ich in B3 eine 105 einfüge, dann kommt eine Fehlermeldung - das ist korrekt.
Sehr komisch...
Bild

Betrifft: AW: Formel für benutzerdefinierte Gültigkeit
von: Matthias G
Geschrieben am: 17.03.2005 10:47:08
Hallo Roaky,
Du musst noch den Haken bei "Leere Zellen ignorieren" rausmachen.
Gruß Matthias
Bild

Betrifft: AW: Formel für benutzerdefinierte Gültigkeit
von: roaky
Geschrieben am: 17.03.2005 10:52:45
Super, vielen Dank Matthias jetzt klappt es!
Gruß
Roaky
Bild

Betrifft: Noch eine kleine Frage
von: roaky
Geschrieben am: 17.03.2005 11:24:06
Habe da nochmal eine kleine Frage:
Meine Excel Tabelle besteht jetzt zum Beispiel von A1 bis K45. Der Rest ist alles leer.
Gibt es jetzt eine Gestaltungsmöglichkeit, die komplette Excel Tabelle nur auf die Zellen A1 bis K45 einzuschränken - so dass der Nutzer nur die reine Tabelle sieht und nicht noch die anderen leeren Zellen?
Danke schonmal
Roaky
Bild

Betrifft: Blende die Zeilen und Spalten aus...oT
von: Boris
Geschrieben am: 17.03.2005 11:34:27
Grüße Boris
Bild

Betrifft: AW: Noch eine kleine Frage
von: Matthias G
Geschrieben am: 17.03.2005 11:37:19
Hallo Roaky,
entweder ausblenden:
Sub Ausblenden()
Dim r As Range, lz As Long, ls As Integer, i As Long
Set r = ActiveSheet.UsedRange
lz = r(r.Count).Row
ls = r(r.Count).Column
Debug.Print lz, ls
Rows(lz + 1 & ":65536").Hidden = True
Range(Cells(1, ls + 1), Cells(1, 256)).EntireColumn.Hidden = True
End Sub

oder die ScrollArea beschränken:

Sub ScrollBereich_beschränken()
ActiveSheet.ScrollArea = ActiveSheet.UsedRange.Address
End Sub

Letzteres muss aber bei jedem Öffnen der Mappe neu gesetzt werden.
Gruß Matthias
Bild

Betrifft: AW: Noch eine kleine Frage
von: roaky
Geschrieben am: 17.03.2005 11:42:46
Danke schonmal für die Hilfe ;)

Sub Ausblenden()
Dim r As Range, lz As Long, ls As Integer, i As Long
Set r = ActiveSheet.UsedRange
lz = r(r.Count).Row
ls = r(r.Count).Column
Debug.Print lz, ls
Rows(lz + 1 & ":65536").Hidden = True
Range(Cells(1, ls + 1), Cells(1, 256)).EntireColumn.Hidden = True
End Sub


-> mal ganz doof gefragt: wo muss ich das einfügen?
Bild

Betrifft: AW: Noch eine kleine Frage
von: Matthias G
Geschrieben am: 17.03.2005 11:45:57
Hallo Roaky,
eigentlich so:
Alt-F11 für VB-Editor,
Menü Einfügen - Modul
dann in dieses Modul.
Aber wenn du kein VBA kannst, dann mach es doch manuell. Die Ausführung ist sowieso nur einmal nötig.
Gruß Matthias
Bild

Betrifft: AW: Noch eine kleine Frage
von: roaky
Geschrieben am: 17.03.2005 11:52:00
Nee nee, passt schon:
hab den Editor mit Alt+F11 gestartet und bin dann auf Modul - Enfügen gegangen. Dann habe ich das Script eingefügt und abgespeichert.
Beim Neustarten waren dann alle leeren Zellen weg.
Vielen Dank - wieder was gelernt ;)
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Formel für benutzerdefinierte Gültigkeit"