Kurze Fragen - Kurze Antworten

Phil2009

Moderator
Teammitglied
Themenstarter
Registriert
30 Juli 2009
Beiträge
5.706
Hallo zusammen,

da der Thread "Alles was zu kurz für einen eigenen Thread ist" immer mehr zur Mitteilungsplattform für allen möglichen Unsinnn wurde (Kostprobe der letzten Wochen: "Boeing 747 von Iron Maiden beschädigt", "Erfinder der E-Mail gestorben", "Samsung Galaxy wird im folgenden Livestream vorgestellt"), ist er geschlossen worden.
Hier findet Ihr einen neuen Thread, in dem folgende Regeln gelten:

- Nur Fragen, keine "Feststellungen", Ankündigungen, kein Gelaber
- Auf Fragen beschränken, die sich voraussichtlich in wenigen Beiträgen beantworten lassen
- Mitteilungen, Feststellungen, Erkenntnisse und sonstige Beiträge, die weder hier noch in eines der "Themen"-Unterforen passen, können bei Facebook oder auf der eigenen Homepage gepostet werden
- Die Moderatoren behalten sich vor, nicht zum Thema passende Beiträge zu entsorgen und etwas umfangreicher gewordene "Frage - Antworten - Kombinationen" in einen eigenen Thread zu verschieben

Grüße
vom Phil :)
 
Zuletzt bearbeitet von einem Moderator:
Ich habe für eine Zelle in Excel einen Höchstwert festgelegt, d. h. wenn ein zu hoher Wert eingegeben wird, erfolgt eine Fehlermeldung. Jetzt hätte ich auch gerne, dass Excel dann automatisch für die Zelle statt des zu hohen Werts den maximal zulässigen verwendet.

Gehe ich richtig in der Annahme, dass das nie funktionieren kann, weil ich immer in einen Zirkelbezug laufe?
 
Etwas in der Art in VBA für z.B. Zelle B2? Habe ich mir aber auch gerade zusammengeschustert. Bin kein Experte dafür.
Als Code einfügen unter "Entwicklertools/Code anzeigen" für Tabelle1

Sub Worksheet_Change(ByVal Target As Range)

Dim Eingabe As Range
Dim Maximum$

With Sheets("Tabelle1")

Set Eingabe = .Range("B2")
Maximum$ = 40

If Target.Value > 40 Then

Target.Value = Maximum

End If

End With

End Sub
 
@Retrostyle - Danke. ich kapier nicht ganz, wie mir die Funktion hier helfen soll. Das wäre ja eine Prüfung einer Zelle auf 2 Bedingungen.

Genauere Erklärung zu meiner Frage:
Ich habe ein Feld (A1) in dem ich den Wert eintrage. Abhängig vom Wert kommt dann in einem anderen Feld (B1) ein Ergebnis raus (Formel mit Bezug auf A1).
Die Nutzer der Excel-Tabelle sollen in A1 jedoch keinen Wert größer 4,6 eingeben können. Das habe ich soweit hinbekommen, dass bei einer Eingabe größer 4,6 eine benutzerdefinierte Fehlermeldung angezeigt wird. Allerdings wird der Wert in A1 nicht auf 4,6 korrigiert.

Ich kann für eine Zelle ja nicht gleichzeitig einen festen Wert und eine Wenn-Formel verwenden.

@boletusmaximus - ich hab zwar ne ganze Weile gebraucht, das jetzt richtig einzufügen, aber es funktioniert. Danke dir. Leider fällt eine Kleinigkeit negativ auf. Wenn das automatisch auf 4,6 geändert wird, zeigt er immer "Als Text gespeicherte Zahlen" an.
 
Zuletzt bearbeitet:
Und wenn Du eine (verborgene) Zelle als Zwischenspeicher nimmst?
(nicht perfekt Excel-Syntax, aber die Idee wird vielleicht klar:]
Feld Z99: Wenn A1<=4,6 dann = A1 sonst = 4,6

Und B1 rechnet dann mit dem Wert aus Z99.

Gruß

Quichote
 
Ich kann es erst morgen wieder mit Excel ausprobieren, aber evtl. liegt die Meldung daran, dass du im VBA-Teil 4,(Komma)6 verwendet hast? Falls dem so ist, dann probiere mal 4.(Punkt)6.
Quichotes Lösung ist, was Aufwand und Zugänglichkeit der Lösung betrifft, aber ohnehin die bessere Wahl, wenn man sich nicht an Feinheiten stört?
 
Zuletzt bearbeitet:
Also 4.6 hab ich schon drin, weil 4,6 nicht funktioniert.
Und wenn Du eine (verborgene) Zelle als Zwischenspeicher nimmst?
(nicht perfekt Excel-Syntax, aber die Idee wird vielleicht klar:]
Feld Z99: Wenn A1<=4,6 dann = A1 sonst = 4,6

Und B1 rechnet dann mit dem Wert aus Z99.

Gruß

Quichote
Hm, die Wenn-Dann-Funktion würde sich dann aber ja nur auf die verborgene Zelle Z99 auswirken, oder? Die Nutzereingabe würde ja weiterhin in A1 erfolgen (und da sollte dann auch die automatische Korrektur angewendet werden).
 
Die wenn-dann-Funktion würde sich auf das Ergebnis auswirken. Und für Zelle A1 hast Du ja schon eine Fehlermeldung hinbekommen. Kannst Du diese formatieren? Wenn bei einer Eingabe >4,6
a) eine Meldung „Du Schuft hast verbotenerweise eine zu große Zahl eingetippt, Wir haben das auf eine erlaubte Zahl reduziert.“ erscheint und
b) mit 4,6 weitergerechnet wird,

ist doch alles im Lack, oder habe ich die Ausgangslage falsch verstanden?

Gruß
Quichote
 
Nein, die Fehlermeldung kann ich nicht formatieren, da sie nicht in der Zelle erscheint. Wenn ich jetzt z. B. "5" eingebe geht nur ein kleines Fenster auf, das einen benutzerdefinierten Hinweis anzeigt. In der Zelle selbst verbleibt weiterhin die "5". Was du in a) und b) beschreibst wäre genau das, was ich will.
Mit deiner Wenn-Dann-Funktion bekomme ich die "4,6" nur in die Zelle "Z99", nicht in die Zelle "A1". Oder hab ich da aufgrund der Uhrzeit jetzt einen massiven Denkfehler?

Außerdem kann man am Ergebnis ("B1") nicht so einfach sehen, mit welchem Wert für "A1" gerechnet wird.
 

Anhänge

  • Excel.JPG
    Excel.JPG
    48 KB · Aufrufe: 3
Zuletzt bearbeitet:
Ich stehe auf dem Schlauch.
Im benutzerdefiniertem Hinweis könnte „Du Schuft, …“ stehen, und das Ergebnis der Berechnung basiert auf maximal 4,6.
Ist es dann nicht egal, ob in Zelle A1 weiterhin die 5 steht?

Verwirrt

Quichote
 
Für das Ergebnis in "B1" wird mit dem Wert gerechnet, der in "A1" steht. Wenn Excel also weiterhin z. B. den unzulässigen Wert "5" verwendet, basiert das Ergebnis in "B1" also nicht auf dem maximal zulässigen Wert von "4,6", sondern auf "5".
 
Na, aber genau das zu ändern schlug ich doch vor!
B1 soll nicht mit A1 rechnen.
B1 soll mit Z99 rechnen.
Und Z99 ist gleich A1, wenn A1 korrekt ist, und gleich 4,6, wenn A1 größer 4,6 ist.
 
Ok, damit bekomme ich dann ein Ergebnis, was auf "4,6" statt "5" basiert. Das ist aber nicht mein Ziel. Ich möchte, dass das Feld "A1" bei zu hohen Eingaben (z. B. "5") automatisch auf den maximal zulässigen Wert von "4,6" korrigiert wird.

Das wird mMn so aber nur mit VBA funktionieren.

Gut, ich könnte natürlich auch einfach in die Fehlermeldung schreiben, dass statt des unzulässigen Werts mit "4,6" gerechnet wurde. Nur leider werden solche Meldungen ja meist nicht bzw. nur teilweise gelesen.
 
Ok. Dann wäre es allerdings hilfreich gewesen, die Frage entsprechend zu formulieren.
 
Ok. Dann wäre es allerdings hilfreich gewesen, die Frage entsprechend zu formulieren.

Ich zitiere mich jetzt mal selbst:

"
Ich habe für eine Zelle in Excel einen Höchstwert festgelegt, d. h. wenn ein zu hoher Wert eingegeben wird, erfolgt eine Fehlermeldung. Jetzt hätte ich auch gerne, dass Excel dann automatisch für die Zelle statt des zu hohen Werts den maximal zulässigen verwendet.

Gehe ich richtig in der Annahme, dass das nie funktionieren kann, weil ich immer in einen Zirkelbezug laufe?"

"
Genauere Erklärung zu meiner Frage:
Ich habe ein Feld (A1) in dem ich den Wert eintrage. Abhängig vom Wert kommt dann in einem anderen Feld (B1) ein Ergebnis raus (Formel mit Bezug auf A1).
Die Nutzer der Excel-Tabelle sollen in A1 jedoch keinen Wert größer 4,6 eingeben können. Das habe ich soweit hinbekommen, dass bei einer Eingabe größer 4,6 eine benutzerdefinierte Fehlermeldung angezeigt wird. Allerdings wird der Wert in A1 nicht auf 4,6 korrigiert."
 
Habe ich gelesen, schon beim ersten Mal. Und Dir vorgeschlagen, wie Excel den passenden Wert „verwendet“, denn das war Deine erste Frage. Mag Deine Bedürfnisse nicht erfüllen, und das ist natürlich auch völlig ok. Es wäre dennoch nützlich zu wissen gewesen, dass das Ziel hier nicht das „Verwenden“ ist, sondern völlig unabhängig vom Ergebnis der Berechnung die Korrektur innerhalb der Zelle.
 
?? Was bedeutet denn dann "verwendet" im ersten Zitat für dich, wenn nicht "Korrektur"?
Spätestens mit dem zweiten Zitat war völlig klar, was ich möchte.

boletusmaximus hat es ja auch auf Anhieb verstanden.

Ich kann da bei besten Willen keine unklare Fragestellung finden.
 
Verwendet: mit den Daten der Zelle weiter rechnen.
Dafür ist Excel nämlich da, so hast Du es dargestellt und dazu habe ich einen Vorschlag gemacht.
Hättest Du von Anfang an gesagt, dass Du ein VB-Skript willst oder hätte boletus‘ Skript funktioniert, hätte ich das nicht.
Aber da das hier der “Kurze Fragen …“- Thread ist, ich inhaltlich nichts weiter beitragen kann (denn von VB verstehe ich nix) und Du offenbar alles richtig gemacht hast, gibt es keinen Grund für weitere zeitliche Investition.
 
Könnte man nicht-zumindest was die Berechnung angeht, in der Formel B1 "Wenn Wert A1 zu hoch dann rechne mit 4,6 sonst rechne mit Wert aus A1" machen?

Für den Wunsch den Wert in der Zelle A1 auf 4,6 zu limitieren fällt mir ausser VBA auch bisher nix besseres ein.
 
Ich habe eine andere Sichtweise.
Ich will, daß der Benutzer bewußt eine gültige Zahl eingibt. Deshalb würde ich in der Fehlermeldung den zulässigen Zahlenbereich angeben und keine falsche Eingabe zulassen.
Wir wissen doch, wie das läuft. Ein unkonzentrierter Mensch tippt oder kopiert was ein, dann kommt Autokorrekt, keiner merkt's und dann wird das berechnete Ergebnis genommen.

Und außerdem würde ich nicht WENN() verwenden, sondern MIN().
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben