Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1608to1612
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten subrahieren bei Bearbeitung aktiver Zellen

Daten subrahieren bei Bearbeitung aktiver Zellen
26.02.2018 13:37:20
Marc
Moin zusammen,
ich habe folgende VBA-Codes die beide nicht funktionieren wie geplant:
Sub A_Neues_Datum_1Monat()
ActiveCell.Name = "actcll"
Range("actcll").Value = Date
ActiveCell.Offset(0, 1) = Date + 31
ActiveCell.Offset(0, 2) = ActiveCell.Offset(0, 1) - Range("K1")
End Sub
Sub B_Neues_Datum_1Monat()
ActiveCell.Name = "actcll"
Range("actcll").Value = Date
ActiveCell.Offset(0, 1) = Date + 31
ActiveCell.Offset(0, 1).Name = "offset1"
ActiveCell.Offset(0, 2).Formula = "=offset1-K1"
End Sub

Nun mein Vorhaben:
Das Programm soll aus der aktiven Zelle heraus arbeiten. In der ersten Zelle steht das jetzige Datum und soll sich nicht verändern. In der nächsten Zelle steht das jetztige Datum plus einen addierten Wert. In der dritten Zelle soll die zweite Zelle mit dem aktuellen Datum (hier in Zelle "K1") subtrahiert werden.
Das Problem an meinen Codes:
Im ersten Code wird in der dritten Zelle der Wert ausgegeben, allerdings verändert dieser sich nicht dynamisch da keine Funktion ausgegeben wird, sondern nur ein Zahlenwert.
Im zweiten Code verändert sich bei mehrmaliger Eingabe des Makros der Wert aller Eingaben, obwohl er sich nur auf die jeweilige Zeile auswirken soll.
Ich hoffe jemand hat dazu eine Lösung.
MfG Marc

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten subrahieren bei Bearbeitung aktiver Zellen
26.02.2018 13:41:56
Burak
schreib das Makro in Workbook Change Event, dann werden die Zellen immer "aktualisiert" wenn sich iwas im Blatt ändert
Liebe Grüße
AW: Daten subrahieren bei Bearbeitung aktiver Zellen
26.02.2018 13:57:29
Marc
Glaube das ist nicht das was ich meine.
Vllt anders ausgedrückt.
Sub B_Neues_Datum_1Monat()
ActiveCell.Name = "actcll"
Range("actcll").Value = Date
ActiveCell.Offset(0, 1) = Date + 31
    ActiveCell.Offset(0, 1).Name = "offset1"
ActiveCell.Offset(0, 2).Formula = "=offset1-K1"
End Sub
Gibt es eine andere Möglichkeit die dritte Zelle ("Offset(0,2)") so als Formel auszugeben, dass die Offset-Zelle(0,1) minus Zelle "K1" gerechnet wird?
Anzeige
AW: Daten subrahieren bei Bearbeitung aktiver Zellen
27.02.2018 00:15:00
Werner
Hallo Marc,
also wenn ich deine seltsame Beschreibung richtig verstanden habe dann so:
Public Sub Test()
ActiveCell.Value = Date
ActiveCell.Offset(0, 1) = Date + 31
ActiveCell.Offset(0, 2) = ActiveCell.Offset(0, 1) - ActiveCell
End Sub
Gruß Werner
AW: Daten subrahieren bei Bearbeitung aktiver Zellen
27.02.2018 00:28:23
Werner
Hallo Marc,
wobei ich da eher dazu tendieren würde das Doppelklick-Event des entsprechenden Tabellenblattes zu verwenden.
Code gehört ins Codemodul des Tabellenblattes, auf dem er sich auswirken soll:
Rechtsklick auf den Tabellenlbattreiter - Code anzeigen - Code rechts ins Codefenster kopieren
Das Makro startet bei Doppelklick in eine Zelle auf dem Blatt.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Target = Date
Target.Offset(0, 1) = Date + 31
Target.Offset(0, 2) = Target.Offset(0, 1) - Target
End Sub
Das ließe sich dann auch noch auf bestimmte Zellbereiche begrenzen. Hier z.B. wirkt das nur in Spalate A:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then
Cancel = True
Target = Date
Target.Offset(0, 1) = Date + 31
Target.Offset(0, 2) = Target.Offset(0, 1) - Target
End If
End Sub
Gruß Werner
Anzeige
AW: Daten subrahieren bei Bearbeitung aktiver Zellen
27.02.2018 08:16:21
Marc
Hallo Werner,
erstmal danke für deine Mühe.
Diese Lösung habe ich bereits ausprobiert.
Das Problem:
Target.Offset(0, 2) = Target.Offset(0, 1) - Target
Diese Zeile gibt nur einen Wert aus. Da er sich jedoch mit fortlaufendem Tag verändern soll (also runterzählen) müsste in der Zelle eine Funktion ausgegeben werden, meiner Meinung nach. Und diese Funktion soll sich auf die vorherige Zelle beziehen.
AW: Daten subrahieren bei Bearbeitung aktiver Zellen
27.02.2018 09:12:11
Marc
So hab ne Lösung gefunden, auch wenns ein wenig gefuscht ist.
Sub A_Neues_Datum_1Monat()
ActiveCell.Value = Date
ActiveCell.Offset(0, 1) = Date + 31
ActiveCell.Offset(0, 2).FormulaR1C1 = "=RC[-1]-R[0]C[3]"
ActiveCell.Offset(0, 3).FormulaR1C1 = "=RC[-1]"
ActiveCell.Offset(0, 5).FormulaR1C1 = "=TODAY()"
End Sub
Danke an alle die sich bei der Findung beteiligt haben :)
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige