Registriert seit: 30.05.2023
Version(en): 2007
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.
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 30.05.2023
Version(en): 2007
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.
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
(03.06.2023, 09: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)
Registriert seit: 11.04.2014
Version(en): Office 365
03.06.2023, 09:47
(Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2023, 10:17 von Klaus-Dieter.)
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.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter,
der Misserfolg ist ein Waisenkind
Richard Cobden
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 22.07.2021
Version(en): Excel 365
03.06.2023, 13:00
(Dieser Beitrag wurde zuletzt bearbeitet: 03.06.2023, 13:01 von el-rettev.)
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:1 Nutzer sagt Danke an el-rettev für diesen Beitrag 28
• zabulon
Registriert seit: 30.05.2023
Version(en): 2007
In E1 - E45 . Die Felder sollen alle erhalten bleiben, d.h. die Tabelle soll nicht kleiner werden, weil die Leer-Felder wegfallen.
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• zabulon
Registriert seit: 30.05.2023
Version(en): 2007
Vielen Dank an el-rettev und RPP63. Beide Versionen funktionieren. Gute Arbeit !