Clever-Excel-Forum

Normale Version: Zellwert auf "" setzen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
habe folgende Ausgangssituation:  In der Spalte E1 - E45  stehen Zahlenwerte.  Und ich habe eine Tabelle im Bereich K10 - M14, das sind insgesamt  15 Felder , in denen man eine Zahl eingeben kann.

Man kann aber auch weniger als 15 eingeben.

Wenn in der Tabelle im genannten Bereich Zahlen eingegeben werden, sollen, diese mit den Zahlen in der Spalte E1-E45 verglichen werden und bei Übereinstimmung soll der entsprechende Wert in

der Zelle gelöscht werden, also nicht auf 0 gesetzt, es soll überhaupt kein Eintrag in der Zelle sein.
Moin!
Zitat:und bei Übereinstimmung soll der entsprechende Wert in der Zelle gelöscht werden

In welcher Zelle?
Soviel vorab:
Dies wird nur mittels VBA gehen.

Aber vielleicht schilderst Du kurz den tieferen Sinn dahinter?
Dann könnte man auch Alternativen vorschlagen.
Geht es nur um Verhinderung von Dubletten?
Dann würde ja vielleicht auch eine bedingte Formatierung hilfreich sein, die sie Dir "nur" anzeigt.

Gruß Ralf
Hallo Ralf,

ja, nur mit VBA, es ist ja ein Makro. Im Tabellenblatt würde ich das hinkriegen.

Es hat nichts mit Doppelwerten zu tun.  Es geht nur darum, daß die Zellwerte gelöscht werden. Für den Rest hab ich ein anderes Makro, das funktioniert.
(03.06.2023, 08:30)zabulon schrieb: [ -> ]Es geht nur darum, daß die Zellwerte gelöscht werden.

Nochmal die Frage:
Wo?
In E1:E45 oder in K10:M14?
Hallo,

da Formeln nur auf die Zellen wirken, in denen sie stehen, müsste sich deine Formel(n) selbst löschen, das geht nicht.

War der falsche Beitrag, lege mich noch mal hin.  19
Moin Klaus-Dieter!
Wo liest Du etwas von Formeln?

Gruß Ralf
Hallo. 
Bin von folgender Ausgangslage ausgegangen:
In K10:M14 werden Zahlen eingegeben. Dort stehen aber auch Leere Zellen. 
Die hier eingegebenen Zahlen, sollen im Bereich E1:E45 entfernt werden.
Es nur der Zelleninhalt gelöscht werden.
Ist also etwas geraten.
Code:
Sub Übereinstimmende_Zahlen_löschen()
    Dim DatenBereich As Range
    Dim PrüfBereich As Range
    Dim Zelle As Range
   
    ' Wo stehen die Zahlen, die gelöscht werden sollen.
    Set DatenBereich = Range("E1:E45")
   
    ' Eingabebereich. Diese Zahlen sollen gelöscht werden.
    Set PrüfBereich = Range("K10:M14")
   
    ' Schleife über alle Zellen im Datenbereich
    For Each Zelle In DatenBereich
        ' Überprüfe, ob die Zelle einen Wert enthält und ob dieser im Prüfbereich vorkommt
        If Not IsEmpty(Zelle) And Application.WorksheetFunction.CountIf(PrüfBereich, Zelle.Value) > 0 Then
            Zelle.ClearContents ' Lösche den Inhalt der Zelle
        End If
    Next Zelle
End Sub
In E1 - E45 .  Die Felder sollen alle erhalten bleiben, d.h. die Tabelle soll nicht kleiner werden, weil die Leer-Felder wegfallen.
Geht sehr viel kürzer und einfacher mittels Range.Find-Methode:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Fund As Range
If Not Intersect(Range("K10:M14"), Target) Is Nothing Then
  Set Fund = Range("E1:E45").Find(Target, LookAt:=xlWhole)
  If Not Fund Is Nothing Then Fund.ClearContents
End If
End Sub
Vielen Dank an el-rettev und RPP63.  Beide Versionen funktionieren. Gute Arbeit !
Seiten: 1 2