ich möchte, dass wenn ich auf dem Tabellenblatt in Spalte F einen Wert eingebe, in Spalte E ein bestimmtes Ergebnis auftaucht.
Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer With Sheets("Jan") For i = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row If .Range("F" & i) = "U" Then .Range("E" & i) = 8 Next i End With End Sub
Leider bekomme ich zwar das Ergebnis wie gewünscht angezeigt, allerdings kommt dann gleich darauf eine Fehlermeldung
"Die Methode Range für das Objekt"_Worksheet" ist fehlgeschlagen"
12.01.2022, 13:24 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2022, 14:33 von Glausius.)
Hallo
dein Code bezieht sich auf ein ganz bestimmtes Sheet, denn er muss in dieser Tabelle stehen! Da kannst du komplett auf With verzichten! Sonst müsstest du ihn in "DieseArbeitsmappe" verlegen, dann wäre er für alle Tabellen gültig. Aber dann bitte auch ohne With "Jan" Ich bin gespannt ob der Fehler dann beseitigt ist?
Mfg Gast 123 Nachtrag. und wie lautet der Blattname wirklich?? Es könnte auch sein das Excel statt Sheet "Worksheet" erwartet. Einfach mal selbst testen. So lernt man VBA kennen.
12.01.2022, 14:33 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2022, 14:34 von ralf_b.)
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Tabelle3" Then Exit Sub If Target.Count > 1 Then Exit Sub If Target.Column <> 6 Then Exit Sub Application.EnableEvents = False If Target.Value = "U" Then Target.Offset(, -1) = 8 Application.EnableEvents = True End Sub
oder dies. Der code muß ins Codemodul von DieseArbeitsmappe. Du willst doch nicht jede Zeile prüfen wenn du nur einen Wert änderst, oder? der code bricht ab wenn die Änderung in Tabelle3 ist. du mehr als eine Zelle geändert hast und du nicht in Spalte 6 = F Änderungen durchgeführt hast.
Vorschlag: Wäre es nicht besser du füllst die Start, Ende und Pausenzeite mit Default-Werten, um dann eine Berechnung für 8 Stunden zu erhalten. In den übrigen Zellen der Spalte E sind doch Formeln oder?
12.01.2022, 14:35 (Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2022, 14:37 von Glausius.)
Hallo,
wenn With weg ist, dann müssen auch die Punkte vor Cells und Range weg.
Der Vorschlag mit On Error Resume Next ist der größste Unfug! Fehler im Code muss man beseitigen und nicht unterdrücken, dass führt zu ungeahnten Ergebnissen und Folgen!
Gruß Günter aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig