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.

Zelleninhalt löschen wenn Nachbarzelle Wert enthält
#1
Hi.
Ich suche eine Lösung um den Inhalt aus Zelle N7 zu löschen, wenn in Zelle M7 etwas steht.
Standardmäßig ist Zelle M7 leer und man kann mittels Dropdown einen von 6 Werten auswählen.
Wenn das allerdings der Fall ist, soll der Inhalt aus Zelle N7 gelöscht werden.
Und dan ganze soll auch Spaltenweise weiter funktionieren, also:

wenn M8 wert, dann N8 Leer
wenn M9 wert, dann N9 Leer 
USW. Bis max N37.

Ich habe es mit folgendem Code versucht, aber da passiert irgendwie garnichts:

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim objRange As Range, objCell As Range
   Set objRange = Intersect(Target, Columns(1))
   If Not objRange Is Nothing Then
       Application.EnableEvents = False
       For Each objCell In objRange
           Call objCell.Offset(0, 1).ClearContents
       Next
       Application.EnableEvents = True
       Set objRange = Nothing
   End If
End Sub
Ich habe es für A1 und B1 mittels diesem Code versucht, um zu testen, aber das klappt nicht.
Kann mir da jemand helfen?
Danke
Antworten Top
#2
Hallo,

versuche es mal so

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim objRange As Range, objCell As Range
   Set objRange = Intersect(Target, Columns(1))
   If Not objRange Is Nothing Then
       Application.EnableEvents = False
       For Each objCell In objRange
           objCell.Offset(0, 1).ClearContents
       Next
       Application.EnableEvents = True
       Set objRange = Nothing
   End If
End Sub

Obiges Makro funktioniert aber nur, wenn Du in Spalte A was eingibst
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
Danke für die Antwort, aberirgendwie klappt das nicht.
Vielleicht mache ich auchbeim einfügen des Codes irgendetwas falsch.
Ich habe es zwischenzeitlich mit anderem Code versucht, aber auch das funktioniert nicht und ich weiss nicht wieso.

Code:
Dim X As Long
For X = 1 To Cells(Rows.Count, 13).End(xlUp).Row
If Cells(X, 13) = "X" Then
  Cells(X, 14).ClearContents
  Cells(X, 21).ClearContents
End If
Next

Auch das geht nicht. Ich reiß mir gleich die Haare raus Huh
Antworten Top
#4
Hallo,

das mit dem Haareausreißen hat noch Zeit. Das kannst Du später immer noch tun.

Aber ich habe das Gefühl, daß Du von Deinem Code etwas erwartest, was der gar nicht
zu leisten imstande ist.
Wie wäre es, wenn Du mal Schritt für Schritt erklärst, was das Makro tun soll und ob es
noch weitere Codes in dieser Datei gibt.
Dann sehen wir weiter.
Ach ja, was Du da oben gepostet hast, ist kein Makro ... das Ding ist maximal ein Codeschnipsel.
Ein Makrocode beginnt mit Sub und endet mit End Sub.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#5
Hallo,

(08.10.2018, 18:06)robertko schrieb: Auch das geht nicht.

Das sollte aber laufen wenn du das von Peter angesprochene noch erledigst.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#6
Nein, es gibt keinen weiteren Code.

Also.
Ich habe eine Tabelle mit 3 Spalten
A;B;C Jeweils von 7 bis 37

In den Zellen der Spalten B und C stehen Werte drin.
In A ist in jederZelle ein Dropdown.
Wenn ich nun aus diesem Dropdown in A etwas auswähle, sollen die entsprechnenden Zellen der gleichen Zeile ( B und C ) gelöscht werden.

A;B;C dienen hier nur zur Vereinfachung.
Ich brauche es für M;N;U.
Antworten Top
#7
(08.10.2018, 18:24)Steffl schrieb: Hallo,


Das sollte aber laufen wenn du das von Peter angesprochene noch erledigst.

Peter???
Was meinst du?
Antworten Top
#8
Hallo,

so sollte es gehen

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim objRange As Range, objCell As Range
   Set objRange = Intersect(Target, Columns(13))
   If Not objRange Is Nothing Then
       Application.EnableEvents = False
       For Each objCell In objRange
           objCell.Offset(0, 1).ClearContents
           objCell.Offset(0, 8).ClearContents
       Next
       Application.EnableEvents = True
       Set objRange = Nothing
   End If
End Sub
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#9
VielelDank, aber auch das geht nicht.
Wie gesagt, ich glaube das ich irgendetwas falsch mache.
Kann man irgendwie prüfen, ob der code eingebunden ist oder weiß der Geier was?
irgendwas stimmt hier nicht.
Schau mal auf das bild. siehst du da irgendeinen Fehler?


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#10
Hallo,

es fehlt das End If und die Zeile mit End Sub. In der Codedarstellung kannst Du übrigens scrollen.
Gruß Stefan
Win 10 / Office 2016
Antworten Top


Gehe zu:


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