Hallo liebe community,
Ich habe dieses Makro, das auch wunderbar funktioniert!
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'Quelle: Ransi
If Intersect(Target, Range("F8:F44, O8:O44")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
If Target = "" Or Target = 0 Then
Target.Offset(0, -1).ClearContents
Else
Target.Offset(0, -1) = CDate(Format(Now, "dd.mm.yyyy hh:mm"))
End If
End Sub
nun möchte ich hinter der Range noch zusätzlich einen Wert einfügen von
P8:P44 jedoch soll hier das Datum dann 2 Spalten nach links angezeigt werden.
Ich hoffe ich habe es verständlich ausgedrückt. Wie muss der code geändert werden? Bekomme das nicht hin.
Ganz lieben Gruß
Keiner eine Idee?
Vieleicht habe ich auch falsch gefragt.
Also ich möchte das hinter der Range ..
Code:
Range("F8:F44, O8:O44")
noch ein weiter wert steht! das würde dann so aussehen
Code:
("F8:F44, O8:O44, P8:P44")
dann soll links davon, 2 Spalten weiter das aktuelle Datum erscheinen. Aber nur für die Range
P8:P44 Die anderen funktionieren ja.
Ist das überhaupt lösbar?
Gruß an alle!
Hi,
ungetestet vielleicht so:
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Target As Range
'Quelle: Ransi
If Intersect(Target, Range("F8:F44, O8:O44, P8:P44")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
If Target = "" Or Target = 0 Then
Target.Offset(0, -1).ClearContents
Else
If Target(Column) = 16 Then
Target.Offset(0, -2) = CDate(Format(Now, "dd.mm.yyyy hh:mm"))
Else
Target.Offset(0, -1) = CDate(Format(Now, "dd.mm.yyyy hh:mm"))
End If
End If
End Sub
Hallo Edgar, danke für deine Hilfe, doch es kommen fehlermeldungen. Ich hänge später eine Testdatei an, da ist es vieleicht einfacher..
LG
So, habe mal eine einfache Testdatei erstellt. Sie ist stark vereinfacht, doch kommt sie meiner Tabelle sehr nahe.
Natürlich ist in meiner Originaldatei die Zelle und die Spalte anders, doch das sollte ich anpassen können.
Vielen Dank an alle!
Hallo Edgar, ich habe deinen Code versucht etwas anzupassen, siehe meine angehängte Datei
Es klappt soweit ganz gut, ausser in der letzten Spalte M. Wenn ich dort einen Betrag eingebe, kommt in der Spalte L vorher immer der Wert 44768,70€ raus.
Was mache ich falsch? Vieleicht siehst du dir meinen modifizierten Code kurz an.
Ansonsten sieht sehr gut aus....
Danke und LG Reiner
Hallo,
du
musst die
Events ausschalten,
wenn du in der Tabelle über einen Code
Änderungen machst, sonst wird das
Change-Ereignis wieder und
wieder aufgerufen.
Kann zu
Fehlausgaben,
Endlosschleifen oder
Absturz führen:
[
attachment=44354]
[
attachment=44355]
Hi,
die Ursache liegt eher darin, dass die betroffenen Spalte ohne Sinn verändert wurden. Es war bisher von P die Rede, jetzt sind wir bei M! Wenn man solche Veränderungen durchführt, dann sollte man auch wissen was man macht!!!
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D8:D44, H8:H44, L8:L44, M8:M44")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub 'Bearbeiten mehrerer Zeilen wird abgefangen
If Target = "" Or Target = 0 Then
Target.Offset(0, -1).ClearContents
Else
If Target.Column = 13 Then
Target.Offset(0, -2) = CDate(Format(Now, "dd.mm.yyyy hh:mm"))
Else
Target.Offset(0, -1) = CDate(Format(Now, "dd.mm.yyyy hh:mm"))
End If
End If
End Sub
Perfekt!!!!!!!!!!!!!!!! Das wars...DANKESCHÖN!!!!!!!!!!!!!!!!