Makro?

Hallo!

In meiner Tabelle trage ich in Spalte F manuell ein, wo sich der Artikel gerade befindet (das ist einer von 5 möglichen Orten). Ich möchte jetzt, dass wenn ich in Spalte A ein v für verkauft eintrage, sich der Eintrag in Spalte F automatisch löscht, da dann also nichts mehr steht. Es scheint mir, dass ich da mit Wenn…Dann… nicht wirklich weiterkomme, weil es ja, solange da kein v steht 5 mögliche Orte gibt. Wisst ihr eine Lösung?

Herzliche Grüße, Katharina

In meiner Tabelle trage ich in Spalte F manuell ein, wo sich
der Artikel gerade befindet (das ist einer von 5 möglichen
Orten). Ich möchte jetzt, dass wenn ich in Spalte A ein v für
verkauft eintrage, sich der Eintrag in Spalte F automatisch
löscht, da dann also nichts mehr steht. Es scheint mir, dass
ich da mit Wenn…Dann… nicht wirklich weiterkomme, weil es
ja, solange da kein v steht 5 mögliche Orte gibt. Wisst ihr
eine Lösung?

hallo Katharina,

klicke mit rechts unten auf den Tabellenreiter, dann Code anzeigen, Code einfügen, Editor schließen.

Private Sub Worksheet\_Change(ByVal Target As Range)
Dim Zelle As Range
Set Target = Intersect(Target, Columns(1))
If Target Is Nothing Then Exit Sub
For Each Zelle In Target.Cells
 If Zelle.Value = "v" Then Zelle.Offset(0, 5).ClearContents
Next Zelle
End Sub

Gruß
Reinhard

Hi!

Mit Wenn/Dann kommt man weiter, wenn Du eine Hilfsspalte akzeptierst, die Du beim Drucken ausblendest (deshalb ist im Beispiel unten die Codespalte rechts von der Spalte mit dem Lagerort).
Genauer: für die Spalte, in die der Lagerort soll, gibt es keine Formel, die Deine Bedingungen erfüllt. Steht der Lagerort aber in einer anderen Spalte und wird nur dann angezeigt, wenn der Artikel nicht verkauft ist, geht’s auch mit Wenn/Dann.

Noch weiter kommst Du mit SVERWEIS. Ich würde es so machen:

  • in A1 steht evtl. das V
  • in C1 steht die Codenummer des Lagerorts (bei fünf möglichen Orten bietet sich 1…5 an)
  • in D1:E5 steht die Tabelle, mit der diesen Codenummern den Namen des Lagerorts zugeordnet werden kann
  • in B1 steht die Formel, die das ganze unter einen Hut bringt:

=WENN(A1=„v“;"";SVERWEIS(C1;$D$1:blush:E$5;2;FALSCH))

Beachte:

  • es muß $D$1:blush:E$5 heißen, sonst wird das beim Kopieren verfälscht
  • es muß FALSCH heißen, sonst sind die Ergebnisse von SVERWEIS ungenau

Übersetzt steht in B1:
>>Wenn in A1 ein V steht, zeige nix ("") an, sonst:
suche in der Tabelle D1:E5 in der ersten Spalte nach der Zahl, die in C1 steht (der Code für den Lagerort) und zeige den entsprechenden Wert aus der zweiten Spalte der Tabelle an.

HTH.

M.
_____________
P.S.: Eine Fehlerbehandlung bspw. beim SVERWEIS war angedacht. Angesichts von Form und Inhalt des orignalen Posts ist das jedoch eine absolute Einzelplatz/Einzeluser-Sache, sodaß man darauf locker verzichten kann.

hallo Katharina,

klicke mit rechts unten auf den Tabellenreiter, dann Code
anzeigen, Code einfügen, Editor schließen.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Set Target = Intersect(Target, Columns(1))
If Target Is Nothing Then Exit Sub
For Each Zelle In Target.Cells
If Zelle.Value = „v“ Then Zelle.Offset(0, 5).ClearContents
Next Zelle
End Sub

Gruß
Reinhard

Hallo Reinhard,

herzlichen Dank, wie immer perfekt :smile:

Liebe Grüße, Katharina