10.10.2018, 17:02
(Dieser Beitrag wurde zuletzt bearbeitet: 10.10.2018, 17:36 von WillWissen.
Bearbeitungsgrund: Thema geteilt
)
Hallo wertes Forum,
ich habe ein ganz ähnliches Problem, aber mit meinen rudimentären VBA-Kenntnissen war ich nicht in der Lage, die genannte Lösung auch auf meinen Code anzuwenden. Vielleicht könnt ihr mir helfen?
Im Wesentlichen wird in meiner Tabelle ein Betrag aus Spalte G im "Kalenderbereich" meiner Tabelle (ab Spalte N) eingetragen und zwar immer bei dem Tag, welcher in Spalte K steht (prognostizierte Zahlung). Ausnahme: In Spalte L (tatsächliche Zahlung) steht ein Datum, dann wird das bisherige überschrieben.
Bis auf 1-2 Zicken funktioniert der Code auch ganz gut, den ich mit freundlicher Unterstützung dieses Forums zusammengebastelt habe.
Mein Problem, ähnlich wie bei mausgambler, ist, dass bei Änderung mehrerer Daten gleichzeitig in Spalte K oder L (z.B. markieren und löschen mehrerer Daten), nur eine Verteilung im "Kalenderbereich" auch wirklich gelöscht wird. Es wäre super, wenn mir hier jemand unter die Arme greifen könnte.
Mein Makro ist wie folgt:
Vielen Dank im Voraus!
Gruß
Josch
Mod: aus diesem Thread abgehängt https://www.clever-excel-forum.de/thread-17490.html
ich habe ein ganz ähnliches Problem, aber mit meinen rudimentären VBA-Kenntnissen war ich nicht in der Lage, die genannte Lösung auch auf meinen Code anzuwenden. Vielleicht könnt ihr mir helfen?
Im Wesentlichen wird in meiner Tabelle ein Betrag aus Spalte G im "Kalenderbereich" meiner Tabelle (ab Spalte N) eingetragen und zwar immer bei dem Tag, welcher in Spalte K steht (prognostizierte Zahlung). Ausnahme: In Spalte L (tatsächliche Zahlung) steht ein Datum, dann wird das bisherige überschrieben.
Bis auf 1-2 Zicken funktioniert der Code auch ganz gut, den ich mit freundlicher Unterstützung dieses Forums zusammengebastelt habe.
Mein Problem, ähnlich wie bei mausgambler, ist, dass bei Änderung mehrerer Daten gleichzeitig in Spalte K oder L (z.B. markieren und löschen mehrerer Daten), nur eine Verteilung im "Kalenderbereich" auch wirklich gelöscht wird. Es wäre super, wenn mir hier jemand unter die Arme greifen könnte.
Mein Makro ist wie folgt:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Events aktivieren
Application.EnableEvents = True
'Wenn kein Eintrag in Spalte 7 [G] oder 11 [K] oder 12 [L], dann Makro verlassen
If Target.Column <> 7 And Target.Column <> 8 And Target.Column <> 10 And Target.Column <> 11 And Target.Column <> 12 Then Exit Sub
If Target.Row < 29 Then Exit Sub
'Gehe bei Fehler zur Fehlerbehandlung
On Error GoTo errorhandler
'Events deaktivieren
Application.EnableEvents = False
'Wenn in H was steht und in J und K nichts steht, dann Datum H + Standard-Zahlungsziel (F19 = Zelle(19, 6)) in K eintragen
If Cells(Target.Row, 8).Value <> "" And Cells(Target.Row, 10).Value = "" And Cells(Target.Row, 11).Value = "" Then
Cells(Target.Row, 11).Value = Cells(Target.Row, 8).Value + Cells(19, 6).Value
End If
'Wenn in J was steht Inhalt von H l?schen
If Cells(Target.Row, 10).Value <> "" Then
Cells(Target.Row, 8).ClearContents
End If
'Wenn in J was steht und in K nichts steht, dann Datum J + Standard-Zahlungsziel (F19 = Zelle(19, 6)) in K eintragen
If Cells(Target.Row, 10).Value <> "" And Cells(Target.Row, 11).Value = "" Then
Cells(Target.Row, 11).Value = Cells(Target.Row, 10).Value + Cells(19, 6).Value
End If
'Startzahl fuer 1.1.2018
Const lStart = 43101
'Zeile ab Spalte N leeren
Cells(Target.Row, 14).Resize(1, 366) = ""
'Wenn in K was steht, dann Betrag bei Datum von K eintragen
If Cells(Target.Row, 11).Value Then Cells(Target.Row, CDbl(Cells(Target.Row, 11).Value) - lStart + 14) = Cells(Target.Row, 7).Value
'Wenn in L was steht, dann
If Cells(Target.Row, 12).Value Then
'Wenn in K was steht, dann
If Cells(Target.Row, 11).Value Then
Cells(Target.Row, CDbl(Cells(Target.Row, 11).Value) - lStart + 14) = ""
'Ende Wenn in H was steht, dann
End If
'Betrag bei Datum von L eintragen
Cells(Target.Row, CDbl(Cells(Target.Row, 12).Value) - lStart + 14) = Cells(Target.Row, 7).Value
'Ende Wenn in L was steht, dann
End If
errorhandler:
'Events deaktivieren
Application.EnableEvents = True
'Ausgabe einer Fehlermeldung
If Err Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description
End Sub
Vielen Dank im Voraus!
Gruß
Josch
Mod: aus diesem Thread abgehängt https://www.clever-excel-forum.de/thread-17490.html