![]() |
|
|
Banner und Co. |
![]() |
Ads |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
![]() Neuer Benutzer |
![]() Hallo,
ich nutze Excel 2016 und vielleicht kann mir jmd helfen. Ich würde gerne in Spalte J und Q ab Zeile 3 bis 999 ein Datum händisch eintragen. Falls in diesen Zellen jeweils schon ein Datum ist, soll bei Eintragung des neuen Datum das vorige Datum eins nach links, sprich in Spalte I bzw. P verschoben werden. Und das soll dann so weitergehen. Neues Datum in J bzw. Q und altes Datum rüber in I bzw. P und den Inhalt dort dann ggf. überschreiben. Möchte also immer max. 2 Datumangaben nebeneinander sehen. Hoffe war verständlich, Danke |
![]() |
![]() ![]() |
![]() |
#2 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Keiner eine Idee? Oder nicht gut erklärt?
Wäre super wenn mir jemand helfen könnte. Danke |
![]() |
![]() ![]() |
![]() |
#3 |
![]() MOF Meister |
![]() Diesen Code in das Modul des betreffenden Tabellenblatts
Code: Option Explicit Dim Zellwert As Variant Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Selection.Cells.Count = 1 Then Zellwert = Target Else Set Zellwert = Nothing End If End Sub Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Zellwert = "" Then Exit Sub If Not Application.Intersect(Target, Range("J3:J999, Q3:Q999")) Is Nothing Then If Target <> "" Then Application.EnableEvents = False Target.Offset(0, -1) = Zellwert Application.EnableEvents = True End If End If End Sub __________________ Schöne GrüßeBerni |
![]() |
![]() ![]() |
![]() |
#4 |
![]() MOF Meister |
![]() Hallo Epsyl0n,
in das Tabellenblatt folgenden Code einfügen: Code: Option Explicit Dim datAltesDatum As Date Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 10 Or Target.Column = 17 Then Target.Offset(0, -1) = datAltesDatum End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) datAltesDatum = Target End Sub __________________ Gruß HassoProgrammers don't die, they just GOSUB without RETURN System Windows 7 Enterprise 64, Office 2013 Wenn dir mein Beitrag gefallen hat, kannst du ihn bewerten (mit dem Symbol links unten) |
![]() |
![]() ![]() |
![]() |
#5 |
![]() MOF Meister |
![]() @Hasso: Dann hast du aber bei jeder Mehrfachauswahl einen Fehler
![]() __________________ Schöne GrüßeBerni |
![]() |
![]() ![]() |
![]() |
#6 |
![]() MOF Meister |
![]() Hallo Berni,
da hast du Recht! Dem ist aber leicht abzuhelfen: Code: Option Explicit Dim datAltesDatum As Date Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Column = 10 Or Target.Column = 17) And Target.Cells.Count = 1 Then Target.Offset(0, -1) = datAltesDatum End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) datAltesDatum = Target End Sub __________________ Gruß HassoProgrammers don't die, they just GOSUB without RETURN System Windows 7 Enterprise 64, Office 2013 Wenn dir mein Beitrag gefallen hat, kannst du ihn bewerten (mit dem Symbol links unten) |
![]() |
![]() ![]() |
![]() |
#7 |
![]() MOF User |
![]() Hi Hasso,
dann schreib jetzt mal in irgendeine Zelle etwas anderes als eine Zahl / ein Datum, also schreib mal in A1 "Test" jetzt wähle A1 erneut aus. ÜBERRASCHUNG! Das hat Berni wesentlich besser gelöst! __________________ Gruß,Helmut Win10 (64Bit) / Office365 (32Bit) |
![]() |
![]() ![]() |
![]() |
#8 |
![]() MOF Meister |
![]() Zitat: von Epsyl0n Ich würde gerne in Spalte J und Q ab Zeile 3 bis 999 ein Datum händisch eintragen. __________________ Gruß HassoProgrammers don't die, they just GOSUB without RETURN System Windows 7 Enterprise 64, Office 2013 Wenn dir mein Beitrag gefallen hat, kannst du ihn bewerten (mit dem Symbol links unten) |
![]() |
![]() ![]() |
![]() |
#9 |
![]() MOF User |
![]() Ja, das war die Fragestellung, aber implizit gehe ich davon aus, dass der Fragesteller eine beliebige andere Zelle mit beliebigem Inhalt auswählen können will, ohne dass Excel ihn mit einem Debug-Fenster begrüßt.
![]() __________________ Gruß,Helmut Win10 (64Bit) / Office365 (32Bit) |
![]() |
![]() ![]() |
![]() |
#10 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Diesen Code in das Modul des betreffenden Tabellenblatts Code: Option Explicit Dim Zellwert As Variant Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Selection.Cells.Count = 1 Then Zellwert = Target Else Set Zellwert = Nothing End If End Sub Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Zellwert = "" Then Exit Sub If Not Application.Intersect(Target, Range("J3:J999, Q3:Q999")) Is Nothing Then If Target <> "" Then Application.EnableEvents = False Target.Offset(0, -1) = Zellwert Application.EnableEvents = True End If End If End Sub das hat super geklappt ![]() |
![]() |
![]() ![]() |