MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 06.02.2019, 16:14   #1
Epsyl0n
Neuer Benutzer
Neuer Benutzer
Standard Frage - Bei neuem Eintrag in Zelle, vorigen Inhalt verschieben

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
Epsyl0n ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2019, 10:34   #2
Epsyl0n
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Keiner eine Idee? Oder nicht gut erklärt?
Wäre super wenn mir jemand helfen könnte.

Danke
Epsyl0n ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2019, 12:55   #3
MisterBurns
MOF Meister
MOF Meister
Standard

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
Hat einzig den Nachteil, dass die Eingabe nicht mit Strg+Enter abgeschlossen werden darf, da sonst kein Selection_Change zutrifft.

__________________

Schöne Grüße
Berni
MisterBurns ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2019, 13:13   #4
Hasso
MOF Meister
MOF Meister
Standard

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
Angehängte Dateien
Dateityp: xlsm Datum nach links.xlsm (23,1 KB, 4x aufgerufen)

__________________

Gruß Hasso

Programmers 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)
Hasso ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2019, 14:27   #5
MisterBurns
MOF Meister
MOF Meister
Standard

@Hasso: Dann hast du aber bei jeder Mehrfachauswahl einen Fehler

__________________

Schöne Grüße
Berni
MisterBurns ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2019, 17:17   #6
Hasso
MOF Meister
MOF Meister
Standard

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ß Hasso

Programmers 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)
Hasso ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2019, 17:28   #7
HKindler
MOF User
MOF User
Standard

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)
HKindler ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2019, 17:57   #8
Hasso
MOF Meister
MOF Meister
Standard

Zitat: von Epsyl0n

Ich würde gerne in Spalte J und Q ab Zeile 3 bis 999 ein Datum händisch eintragen.

Das war die Fragestellung.

__________________

Gruß Hasso

Programmers 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)
Hasso ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2019, 08:44   #9
HKindler
MOF User
MOF User
Standard

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)
HKindler ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.02.2019, 21:17   #10
Epsyl0n
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von MisterBurns Beitrag anzeigen

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
Hat einzig den Nachteil, dass die Eingabe nicht mit Strg+Enter abgeschlossen werden darf, da sonst kein Selection_Change zutrifft.

Vielen Dank,
das hat super geklappt
Epsyl0n ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.