Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zellwert auf "" setzen
#1
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.
Antworten Top
#2
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
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.
Antworten Top
#4
(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?
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
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
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#6
Moin Klaus-Dieter!
Wo liest Du etwas von Formeln?

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
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
[-] Folgende(r) 1 Nutzer sagt Danke an el-rettev für diesen Beitrag:
  • zabulon
Antworten Top
#8
In E1 - E45 .  Die Felder sollen alle erhalten bleiben, d.h. die Tabelle soll nicht kleiner werden, weil die Leer-Felder wegfallen.
Antworten Top
#9
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • zabulon
Antworten Top
#10
Vielen Dank an el-rettev und RPP63.  Beide Versionen funktionieren. Gute Arbeit !
Antworten Top


Gehe zu:


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