Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zahlenwerte begrenzen

Zahlenwerte begrenzen
20.06.2007 18:18:33
CarVogt
Hallo,
ich habe eine Tabelle mit folgendem Makro:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim efz%
If Target.Address = "$B$6" Then
Application.EnableEvents = False
efz = Cells(Rows.Count, 2).End(xlUp).Row + 1
If efz 


Sobald ich also eine Eingabe in B3 mit Enter bestätige wird der eingegebene Wert in die nächste frei Zeile in Spalte B eingetragen.
Ich möchte nun noch folgendes erreichen:
-Es dürfen nur volle Zahlenwerte zwischen 1 und 100 akzeptiert werden
-Die Summe aus Spalte B wird von einer Zahl in Zelle B3 abgezogen. Der Rest in B3 darf nur die Werte 0 oder eine Zahl >1 annehmen.
Wie kann man das machen?
Gruß
Carsten

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlenwerte begrenzen
20.06.2007 18:40:54
Hajo_Zi
Hallo Carsten,
man muss nicht alles mit VBA machen. Benutze Daten, Gültigkeit

AW: Zahlenwerte begrenzen
20.06.2007 20:02:24
CarVogt
Hallo Hajo,
zu Punkt 1 gebe ich Dir Recht, zu Punkt 2 muss ich etwas hinzufügen, was mir leider erst nach Deiner Antwort aufgefallen ist.
Sollte der Eingegebene Wert zum Ergebnis "1" führen, dann soll statt des eingegebenen Wertes eine "0" übernommen werden. Ich denke, dass ist nur per VBA machbar.
Gruß
Carsten

Anzeige
AW: Zahlenwerte begrenzen
21.06.2007 10:41:00
Chaos
Servus,
mach das doch mit einer Hilfszelle- bzw-spalte:
etwa in der Art:
=wenn(B3-B10=1;0;B10) u.s.w.
Ich weiß ja nicht, was du genau willst. Welche Summe du von B3 abziehst ist mir nicht wirklich klar. Und wo steht das Summenergebnis?
Gruß
Chaos

AW: Zahlenwerte begrenzen
21.06.2007 22:09:43
CarVogt
Hallo Chaos,
ich addiere die untereinander aufgeführten Werte und ziehe diese von einer festgelegten Zahl (z.B. 250) ab.
Irgendwann wird der Wert natürlich im Bereich "0" landen. Genau "0" ist ok, negative Werte und "1" dürfen nicht herauskommen. In diesem Fall darf die zuletzt übernommene Zahl nicht übertragen werden, stattdessen soll eine "0" gesetzt werden.
Ich hoffe, das war verständlicher.
Gruß
Carsten

Anzeige
AW: Zahlenwerte begrenzen
22.06.2007 08:01:57
Chaos
Servus Carsten,
das habe ich schon verstanden, aber wie addierst du die zellen? Mit summe(A10:Ax) oder wie, und wo steht das Formelergebnis? Oder willst du die Summe direkt unten dran stellen, oder soll das Makro das direkt machen ohne Zwischenergebnis ? Und wo steht die Differenz?
Gruß
Chaos

Anzeige
AW: Zahlenwerte begrenzen
22.06.2007 08:59:00
Chaos
Servus Carsten,
hier mal ein Ansatz:

Sub addieren()
Dim t As Byte, s As Integer, a As Integer, b As Integer
Range("B65536").End(xlUp).Offset(0, 0).Select
t = ActiveCell.Row ' liest die letzte zelle in B aus
s = Application.WorksheetFunction.Sum(Range("B10:B" & t)) 'addiert die Zellen von B10: letzte
a = Range("B3").Value
b = a - s 'subtrahiert a -summe
If b 


Funktioniert aber nur, wenn keine weiteren beschriebenen Zellen unter den Zahlen in Spalte B stehen.
Gruß
Chaos

Anzeige
AW: Zahlenwerte begrenzen
23.06.2007 08:08:00
CarVogt
Hallo Chaos,
danke, so funktioniert es.
Gruß
Carsten

AW: Zahlenwerte begrenzen
23.06.2007 11:52:00
Chaos
Bitteschön!

AW: Zahlenwerte begrenzen
21.06.2007 10:13:57
Chaos
Servus,
zu Punkt 1:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim efz%, s As String
If Target.Address = "$B$6" Then
s = Range("B6").Value
If IsNumeric(s) Then
If s = 100 Then
Application.EnableEvents = False
efz = Cells(Rows.Count, 2).End(xlUp).Row + 1
If efz  0 And s 


nur ganze Zahlen zwischen 1 und 100. Das mit der Null und eins hab ich nicht so ganz verstanden, welches Ergebnis meinst du?
Mit diesem Makro, schreibt er nur Zahlen untereinander!?
Gruß
Chaos

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zahlenwerte in Excel begrenzen


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass in einer Excel-Tabelle nur bestimmte Werte eingegeben werden, kannst Du verschiedene Methoden nutzen. Hier ist eine Schritt-für-Schritt-Anleitung, wie Du die Eingabe von Zahlenwerten zwischen 1 und 100 in einer Zelle (z.B. B3) beschränken kannst:

  1. Datenvalidierung verwenden:

    • Wähle die Zelle B3 aus.
    • Gehe zu Daten > Datenvalidierung.
    • Wähle unter Zulassen die Option Ganze Zahl.
    • Setze die Daten auf zwischen und gebe die Werte 1 und 100 ein.
    • Klicke auf OK.
  2. VBA-Makro erstellen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Füge folgendes Makro in das entsprechende Arbeitsblatt ein:
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim efz As Integer
       If Target.Address = "$B$3" Then
           If Target.Value < 1 Or Target.Value > 100 Then
               MsgBox "Bitte nur Werte zwischen 1 und 100 eingeben."
               Target.ClearContents
           End If
       End If
    End Sub
  3. Summe berechnen:

    • In einer anderen Zelle, z.B. B4, kannst Du die Summe der Werte in Spalte B berechnen:
      =SUMME(B10:B100)
    • Ziehe diesen Wert von dem Wert in B3 ab, um die gewünschte Berechnung durchzuführen.

Häufige Fehler und Lösungen

  • Fehler: Die Eingabe wird akzeptiert, obwohl sie außerhalb des zulässigen Bereichs liegt.

    • Lösung: Überprüfe die Einstellungen der Datenvalidierung oder das VBA-Makro auf Fehler.
  • Fehler: Das Makro funktioniert nicht wie erwartet.

    • Lösung: Stelle sicher, dass das Makro im richtigen Arbeitsblatt eingefügt ist und die Ereignisse aktiviert sind (Application.EnableEvents).

Alternative Methoden

Wenn Du keine VBA-Programmierung verwenden möchtest, gibt es alternative Methoden zur Begrenzung von Werten in Excel:

  1. Datenvalidierung für mehrere Zellen:

    • Du kannst die Datenvalidierung auf mehrere Zellen gleichzeitig anwenden, indem Du den gewünschten Zellbereich markierst und die gleichen Schritte wie oben ausführst.
  2. Hilfsspalte verwenden:

    • Erstelle eine Hilfsspalte, die basierend auf den Eingaben in Spalte B die Werte anpasst. Zum Beispiel:
      =WENN(B3-SUMME(B10:B100) <= 1; 0; B3-SUMME(B10:B100))

Praktische Beispiele

Hier sind einige Beispiele, wie Du die oben beschriebenen Methoden in einer typischen Excel-Tabelle umsetzen kannst:

  • Beispiel 1: Du möchtest sicherstellen, dass in der Zelle B3 nur Werte zwischen 1 und 100 eingegeben werden. Verwende die Datenvalidierung.
  • Beispiel 2: Du hast eine Liste von Ausgaben in Spalte B und möchtest die Summe aus dieser Liste in B4 darstellen. Verwende die SUMME-Funktion.

Tipps für Profis

  • Nutze die INDIREKT-Funktion, um dynamische Zellreferenzen in Deinen Formeln zu erstellen. Damit kannst Du flexibler mit Daten umgehen.
  • Verwende bedingte Formatierung, um Zellen hervorzuheben, die bestimmte Kriterien nicht erfüllen. So siehst Du auf einen Blick, wenn ein Wert außerhalb des erlaubten Bereichs liegt.
  • Wenn Du mit großen Datenmengen arbeitest, kann die Verwendung von Tabellen helfen, die Berechnungen und Datenvalidierungen zu vereinfachen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur ganze Zahlen eingegeben werden? Verwende die Datenvalidierung und setze den Typ auf Ganze Zahl. Dies ermöglicht es nur, ganze Zahlen in die Zelle einzugeben.

2. Kann ich mehrere Zellen gleichzeitig validieren? Ja, markiere einfach alle Zellen, die Du validieren möchtest, und wende die Datenvalidierung mit den gewünschten Einstellungen an.

3. Wie kann ich negative Werte in meinen Berechnungen verhindern? Du kannst dies in Deinem VBA-Makro oder in der Hilfsspalte überprüfen, bevor Du Werte überträgst. Verwende eine Bedingung, die sicherstellt, dass keine negativen Werte akzeptiert werden.

4. Welche Excel-Version benötige ich für diese Funktionen? Die beschriebenen Funktionen und Methoden sind in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige