Zellen durch Eingabe Sperren, bei Eintrag löschen Zellen wieder freigeben
#1
Ein nettes hallo an die Excelspezialisten,

ich habe drei Zellen für Eingaben D23; D26 und D29. Die drei Eingabezellen liefern unterschiedliche Ergebnisse in den G bis J 23, 26 und 29.

- Möglichkeit 1
Wenn ich in eine dieser Zellen eine Zahl eingebe, soll das die beiden anderen Zellen für eine Eingabe sperren, erst wenn diese Eingabe wieder gelöscht wird, kann eine neue Eingabe in eine der drei Zellen erfolgen.
 
- Möglichkeit 2
Wenn ich in Zellen A eine Zahl eingebe dann in Zelle B eine Zahl eingebe wird der Eintrag in Zelle A gelöscht.

Bitte ohne VBA. Ich bin der Meinung Möglichkeit 1 lässt sich einfacher realisieren. Vielleicht hat ja jemand von euch eine Lösung und sag schon mal Danke für eure Mühen.
Die Beispieldatei habe ich eingestellt.

Lieben Gruß Thomas


Angehängte Dateien
.xlsx   CEF Handel in Elvenar.xlsx (Größe: 55,18 KB / Downloads: 10)
Wer nie Fehler macht, nie scheitert, nie Grenzen überschreitet,  hat sich selbst nie richtig herausgefordert. Nur wer Grenzen überschreitet, Fehler macht und scheidert weiß wo die Grenzen des machbaren liegen..

Die Beiträge und Anhänge werden gerne unter Ausschluss jeglicher Gewährleistung weitergegeben.
tomtom58


Antworten Top
#2
Hallo Thomas,

ob da inzwischen in O2024 (vermutlich aber auch nicht) was ohne VBA geht keine Ahnung, aber in O2019 meines Wissens nicht,
zumal ja die Überwachung eines Ereignisses in den Zellen nötig ist. 
Formeln können nur etwas in der Zelle((n) falls spillende Formel) ausgeben.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • tomtom58
Antworten Top
#3
Hallo


Möglichkeit1:
  • markieren die 3 Zellen (mit Strg)

  • Daten, Datentools, Datenüberprüfung

  • Benutzerdefiniert, dort diese Formel rein

    PHP-Code:
    (Formel gelöscht


    Anzahl() erlaubt nur Zahlen
    Der Rest = max ein Eintrag


M2

meiner Ansicht nach nur mit VBA


LG UweD



Update:

habe gerade noch gemerkt, wenn eine Zelle eine Zahl enthält, kann in den beiden Anderen eine Texteingabe erfolgen.
Deshalb besser so

PHP-Code:
=(ANZAHL(D23;D26;D29)=1)*(ANZAHL2(D23;D26;D29)=1

LG UweD
[-] Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:
  • tomtom58
Antworten Top
#4
Hallo Namensvetter,

Die Datenüberprüfung hatte ich überhaupt nicht auf dem Schirm - Top Lösung.

Gruß Uwe
Antworten Top
#5
Guten Morgen Thomas, 

Möglichkeit 2 geht ohne VBA leider geht

Viele Grüße 
Michael
[-] Folgende(r) 1 Nutzer sagt Danke an Blaukraut05 für diesen Beitrag:
  • tomtom58
Antworten Top
#6
Falls doch VBA, dann so...


- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- Diesen Code rechts reinkopieren

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Fehler
    Const APPNAME = "Worksheet_Change"
    Dim RNG As Range, TMP As Integer
   
    Set RNG = Range("D23, D26, D29")
   
    If Not Intersect(Target, RNG) Is Nothing Then
        Select Case True
            Case WorksheetFunction.CountA(RNG) = 0 'Wenn alle Zellen Leer
                GoTo Ende
               
            Case IsNumeric(Target) And Target <> "" 'Wenn Zahl und nicht leer
                TMP = Target
                Application.EnableEvents = False
                RNG.ClearContents
                Target = TMP
           
            Case Not IsNumeric(Target) 'Wenn Text
                MsgBox "Falscheingabe"
                With Application
                    .EnableEvents = False
                    Target.ClearContents
                End With
            End Select
    End If
    '*** Fehlerbehandlung
    Err.Clear
Ende:
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
        & "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub

LG UweD
[-] Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:
  • tomtom58
Antworten Top
#7
Hallo Egon12, hallo UweD, hallo Blaukraut05,

erstmal vielen lieben Dank für eure Unterstützung.


UweD, dein Ansatz ist vielversprechend habe ihn ausprobiert und es Funktioniert. Leider nur von oben nach unten will heißen,

- Eingabe in D23 dann sind D26 und D29 gesperrt; Fehlermeldung kommt.

- Eingabe in D26 dann ist D29 gesperrt; Fehlermeldung kommt leider ist D23 nicht gesperrt

- Eingabe in D29 dann sind D23 und D26 nicht gesperrt.

Leider habe ich die Formel nicht wirklich durchdrungen sonst würde ich mir sie selber zurechtstricken. Vielleicht fällt dir ja noch was ein! Wenn du Zeit hast könntest du mir ja eventuell versuchen die Wirkungsweise zu schildern über eine Antwort würde ich mich freuen. Vielleicht weiß ja Egon12 auch eine Lösung, da es schrieb …  Zitat:  „Die Datenüberprüfung hatte ich überhaupt nicht auf dem Schirm - Top Lösung.“

Euch nochmal lieben Dank und einen netten Gruß Thomas.
Wer nie Fehler macht, nie scheitert, nie Grenzen überschreitet,  hat sich selbst nie richtig herausgefordert. Nur wer Grenzen überschreitet, Fehler macht und scheidert weiß wo die Grenzen des machbaren liegen..

Die Beiträge und Anhänge werden gerne unter Ausschluss jeglicher Gewährleistung weitergegeben.
tomtom58


Antworten Top
#8
Hi,

in der Formel für die Datenüberprüfung müssen die Zellbezeichnungen fixiert sein:

Code:
=(ANZAHL2($D$23;$D$26;$D$29)=1)*ISTZAHL(D23)

Für D23, kannst Du kopieren.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • tomtom58
Antworten Top
#9
@ Blaukraut05,
ja das dachte ich mir schon, deshalb schrieb ich ja auch geschrieben, dass Lösung1 eher realisierbar ist.

auch dir lieben Dank für diesen Hinweis

Gruß Thomas
Wer nie Fehler macht, nie scheitert, nie Grenzen überschreitet,  hat sich selbst nie richtig herausgefordert. Nur wer Grenzen überschreitet, Fehler macht und scheidert weiß wo die Grenzen des machbaren liegen..

Die Beiträge und Anhänge werden gerne unter Ausschluss jeglicher Gewährleistung weitergegeben.
tomtom58


Antworten Top
#10
(22.04.2025, 13:14)tomtom58 schrieb: UweD, dein Ansatz ist vielversprechend habe ihn ausprobiert und es Funktioniert. Leider nur von oben nach unten will heißen,

- Eingabe in D23 dann sind D26 und D29 gesperrt; Fehlermeldung kommt.

- Eingabe in D26 dann ist D29 gesperrt; Fehlermeldung kommt leider ist D23 nicht gesperrt

- Eingabe in D29 dann sind D23 und D26 nicht gesperrt.

Leider habe ich die Formel nicht wirklich durchdrungen sonst würde ich mir sie selber zurechtstricken. Vielleicht fällt dir ja noch was ein! Wenn du Zeit hast könntest du mir ja eventuell versuchen die Wirkungsweise zu schildern über eine Antwort würde ich mich freuen. Vielleicht weiß ja Egon12 auch eine Lösung, da es schrieb …  Zitat:  „Die Datenüberprüfung hatte ich überhaupt nicht auf dem Schirm - Top Lösung.“

Dann versuch es so:

Alle 3 Zellen zusammen markieren...

Code:
=(ANZAHL($D$23;$D$26;$D$29)=1)*(ANZAHL2($D$23;$D$26;$D$29)=1)


LG UweD
[-] Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:
  • tomtom58
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste