versuche es mal mit diesem Makro im Modul des Tabellenblattes:
Code:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 8 Then If Cells(Target.Row, 5) = "" And Cells(Target.Row, 6) = "" And Cells(Target.Row, 8) = "x" Then With Cells(Target.Row, 9) .Value = "Vorschlag" .Font.Color = -16776961 .Font.TintAndShade = 0 End With End If End If End Sub
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
20.12.2019, 11:37 (Dieser Beitrag wurde zuletzt bearbeitet: 20.12.2019, 12:05 von WillWissen.
Bearbeitungsgrund: Formatierung
)
Moin zusammen :)
@Klaus-Dieter: Dein Code funktioniert, allerdings hat er den Nachteil, dass ich die "x" selbst setzen muss um den Eintrag "Vorschlag" zu erhalten. Lässt sich der Code so ändern, dass die Funktion ausgeführt wird wenn ich Daten via "Inhalte einfügen" in mein Template kopiere?
Darüber hinaus habe ich bereits eine Funktion Worksheet_Change(ByVal Target As Range) in dem Arbeitsblatt. Gibt es eine Möglichkeit 2 dieser Funktionen in einem Arbeitsblatt zu nutzen, ohne eine Fehlermeldung zu bekommen?
@snb: Dein Code funktioniert ebenfalls super und umgeht in meinem Fall das Problem der nicht eindeutigen Funktionsbenennung. Aber leider löscht er alle anderen Inhalte in Spalte "I" beim Ausführen.
Gibt es eine Möglichkeit nur die Inhalte in de n Zeilen zu ändern die diese Wenn-dann Bedingungen erfüllen?
jeder Lösungsvorschlag kann nur so gut sein, wie die Fragestellung. Von dem anderen Makro habe ich in der Beispieldatei nichts gesehen. Man kann die aber in aller Regel zu einem Makro zusammenführen. Wo kommen die Inhalte denn her?
Viele Grüße Klaus-Dieter Der Erfolg hat viele Väter, der Misserfolg ist ein Waisenkind Richard Cobden
im Tabellenblatt steht bereits der folgende Code im Modul:
Code:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("J:J")) Is Nothing Then On Error GoTo ErrorHandler Application.EnableEvents = False Target.Value = UCase(Target) ErrorHandler: Application.EnableEvents = True End If End Sub
In der entsprechenden Spalte dürfen nur Großbuchstaben benutzt werden sonst können die Werte nicht korrekt in unsere Datenbank übertragen werden.
Die Inhalte bekomme ich wöchentlich in einer sehr große Excel Liste angeliefert. Nach der Aufbereitung in einem anderen Template kopiere ich die Daten über Inhalte einfügen in das Sheet an dem ich bzw. wir hier gerade arbeiten.
Der Code von @snb funktioniert super!
Gibt es die Möglichkeit nicht nur den Wert "Vorschlag" bei Erfüllung der Wenn-dann-Bedingung in Spalte [KLKLKL] schreiben zu lassen, sondern die Werte aus Zelle 1 & 2 in der Zeile auch zu übernehmen?
23.12.2019, 16:42 (Dieser Beitrag wurde zuletzt bearbeitet: 23.12.2019, 16:43 von snb.)
PHP-Code:
Sub M_snb() [tabelle1[KLKLKL]]=[if(tabelle1[Life]&tabelle1[Still]&tabelle1[XX]="x",tabelle1[Artikelnummer]&" "&tabelle1[Artikelbezeichnung]&" Vorschlag",if(tabelle1[KLKLKL]="","",tabelle1[KLKLKL]))] End Sub
30.12.2019, 12:11 (Dieser Beitrag wurde zuletzt bearbeitet: 30.12.2019, 12:14 von WillWissen.
Bearbeitungsgrund: Formatierung
)
Moin,
bei der Nutzung des Codes sind doch noch ein paar Fragen/ Fehler aufgetaucht. Ich habe ihn natürlich auf meine Tabelle im Template angepasst und in der Regel funktioniert er fehlerfrei, aber leider nicht immer.
heisst für mich, dass die Bedingung erfüllt ist wenn in jeder Spalte ein "x" steht. Das ist offenbar nicht der Fall. Ich kenne es bisher nur so, dass leer Zellen als "" bezeichnet werden. Ich hätte also den folgenden Code erwartet:
Warum ist das hier nicht nötig bzw. funktioniert gar nicht?
In einigen Fällen führt der aktuelle Code zu dem im Screenshot dargestellten Verhalten (Bild 1-6 Fehler; 7 korrektes Verhalten). Es taucht also in der Zielzelle der Wert "#WERT!" auf. Ich habe dafür noch kein Muster erkennen können. Was könnte die Ursache dafür sein?