Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1176to1180
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

Vorjahr schreiben

Vorjahr schreiben
Mat
Hallo Leute,
ich bräuchte einen Tipp.
Ich muss mein Fahrtenbuch abschreiben und dabei stets das Vorjahresdatum eingeben. Dabei möchte ich nur tt.mm eingeben. Excel ergänzt aber dann automatisch das aktuelle Jahr. Wie kann ich Excel dazu bringen auf das Datum des Vorjahres ergänzen? (Ohne das Jahr in der Systemsteuerung zu ändern!
Gruß Mat

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Vorjahr schreiben
18.09.2010 10:51:06
silex1
Hallo,
hatte mal den selben Wunsch, der dank Glücksritter76 und Zero so umgesetzt wurde.
Eingabe der Jahreszahl in B1 und in Spalte H wären die Eingaben. Eingabe kann über Nummernblock erfolgen, mit dem Komma als Trenner.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("H:H")) Is Nothing And Target.Count = 1 Then On Error Resume Next Application.EnableEvents = False If IsDate(Target.Text) Then Target = CDate(Target.Text & " " & Cells(1, 2)) Else Target = "Kein gültiges Datum!" End If End If Application.EnableEvents = True End Sub Code in´s Tabellenblatt.
VG, René
Anzeige
Hinweis ...
18.09.2010 11:23:34
Matthias
Hallo René
Tabelle1

 BCDEFGH
12003     13.12.2003
2      14.12.2003
3      15.12.2003


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Und jetzt merkst Du das H2 ja doch noch der 13.12 war und willst das ändern.
Was passiert jetzt?
Gruß Matthias
Anzeige
AW: Hinweis ...
18.09.2010 11:46:27
Mat
Hallo Rene, hallo Matthias,
ich bekomme immer wieder 1900 als Jahreszahl. Falls die Zelle dann doch leer bleiben soll dann "Kein gültiges Datum!"
Woher kommt die 1900?
Gruß Mat
und so gehts mit Formeln
18.09.2010 12:24:24
Matthias
Hallo
hier mal ein Beispiel
setze zuerst folgende Autokorrektur
Userbild
und nun nach diesem Schema
in A die Eingabe z.B. für den 14.12
Eingabe 14,,12
Durch das Doppelkomma wird es zu einem Punkt und Excel erkennt es jetzt als Datum 14.12
Tabelle1

 AB
101.01.201001.01.2009
217.02.201017.02.2009
329.2ungültiges Datum
405.03.201005.03.2009
531.12.201031.12.2009

Formeln der Tabelle
ZelleFormel
B1=WENN(A1<>"";WENN(ISTFEHLER(DATUM(JAHR(A1)-1;MONAT(A1); TAG(A1))); "ungültiges Datum";DATUM(JAHR(A1)-1;MONAT(A1); TAG(A1))); "")
B2=WENN(A2<>"";WENN(ISTFEHLER(DATUM(JAHR(A2)-1;MONAT(A2); TAG(A2))); "ungültiges Datum";DATUM(JAHR(A2)-1;MONAT(A2); TAG(A2))); "")
B3=WENN(A3<>"";WENN(ISTFEHLER(DATUM(JAHR(A3)-1;MONAT(A3); TAG(A3))); "ungültiges Datum";DATUM(JAHR(A3)-1;MONAT(A3); TAG(A3))); "")
B4=WENN(A4<>"";WENN(ISTFEHLER(DATUM(JAHR(A4)-1;MONAT(A4); TAG(A4))); "ungültiges Datum";DATUM(JAHR(A4)-1;MONAT(A4); TAG(A4))); "")
B5=WENN(A5<>"";WENN(ISTFEHLER(DATUM(JAHR(A5)-1;MONAT(A5); TAG(A5))); "ungültiges Datum";DATUM(JAHR(A5)-1;MONAT(A5); TAG(A5))); "")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Später kannst Du dann die Zellen in Spalte B durch ihre Werte eretzen und anschließend Spalte A löschen.
Gruß Matthias
Anzeige
Nette Idee, Matthi,...
18.09.2010 13:34:37
Luc:-?
…aber setzt auch eine Trennung von Eingabe- u.Wiedergabezelle voraus, was ja nicht immer opportun ist. Anderenfalls wird ja doch wieder VBA benötigt! Im Herber-Archiv müssten solche PgmCodes vorhanden sein, denn ich habe hier schon ab und zu was derartiges gelesen (mal abgesehen davon, dass ich auch schon so etwas geschrieben habe - ist wahrscheinl auch im Archiv, aber wenn, dann in einer Projektmappe).
Was als Jahr ergänzt wird, ist im Prinzip schnurz, nur — es muss auch ergänzt wdn, sonst ist es halt 1900 (bzw 1904). Man kann ja bspw jahr = Year(Now) - 1 schreiben und jahr dann als eines von mehreren Argumenten an eine udFkt übergeben, die ein Datum aus den Argg macht und dieses an die anwendende Subroutine (kann auch Ereignisproz sein) zurück gibt, die es schließlich in die Zelle einträgt und dabei den Eingabewert überschreibt. So mache ich das jedenfalls…
Gruß + schöWE, Luc :-?
Anzeige
@ Luc :-?
18.09.2010 14:23:31
Matthias
Hallo Luc :-?
Trennung von Eingabe- u.Wiedergabezelle
Im Beitrag ist ja zu sehen das dieses Beispiel mit einer Hilfspalte realiert wurde und im Beitrag steht auch, das es ein Beispiel ist.
Mir ist auch bekannt, das es mit vba machbar ist und habe auch schon selbst den Code dazu geschrieben.
Nur möchte man auch erstmal ein Feedback vom Fragenden. Ist doch verständlich, oder ?
Gruß Matthias
AW: @ Luc :-?
18.09.2010 16:32:16
Mat
Hallo Matthias,
die Formelgeschichte finde ich gut. Die Hilfstalte ist kein Problem. Lediglich die Doppelkommaeingabe ist mir zu unhandlich.
Hat jemand noch eine andere Idee, wie man das Datum in kurzer Form mit dem Komma eingeben kann?
Gruß Mat
Anzeige
mit Zellformat...
18.09.2010 16:49:30
silex1
Hallo,
...geht es auch, allerdings nur optisch!
12.04.2003

ZelleFormatWert
G2TT.MM."2003"12.04.2010
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Wenn Du mit dem Nummernblock arbeitest, geht auch die Minus- oder Geteilt-durch-Taste, um ein Datumsformat zu erzeugen.
VG, Rene
Anzeige
Warum so empfindl, denkst du, das habe...
18.09.2010 17:11:01
Luc:-?
…alles nicht gesehen bzw war mir bewusst…
Ein Berliner hätte meinen Beitrag wohl eher als Lob mit zusätzlichem Alternativvorschlag aufgefasst… ;-)
Gruß Luc :-?
Übrigens, D2Date befindet sich...
18.09.2010 17:26:28
Luc:-?
in dieser Projektmappe
Handhabung ist dann bei _Change von Tab1 zu finden.
Gruß Luc :-?
Hey ...
18.09.2010 19:21:02
Matthias
Hallo
... das war keine Kritik und ich bin auch nicht empfindlich
Ich fasse hier alles als konsruktive Vorschläge auf Luc :-?
Ok - und wenn das also ein Lob war, dann danke ich Dir dafür :o)
Gruß Matthias
Anzeige
AW: Hinweis ...
18.09.2010 11:50:18
silex1
Hallo Mattias,
na ja, ist in meiner Tabelle nie vorgekommen. Hab immer das richtige Datum eingegeben! ;-))
Aber auf Grund Deines Hinweises, mal getestet und...is ja dämlitsch.
Sollte ja das Jahr aus B1 sein. Is aber das aktuelle Jahr. Diese Problematik tritt auch auf, wenn ich das Format der Zellen auf TT.MM.JJJJ umstelle und weiter eingebe. Ist ja noch dämlitscher... :-(((
Da ich nur Code´s zusammenklauen kann, könntest Du da etwas behilflich sein?
VG, René
AW: Vorjahr schreiben
18.09.2010 16:50:57
Hajo_Zi
Hallo Mat,
Option Explicit                             ' Variablendefinition erforderlich
Private Sub Worksheet_Change(ByVal Target As Range)
'* H. Ziplies                                     *
'* 06.08.10                                       *
'* erstellt von HajoZiplies@web.de                *
'* http://Hajo-Excel.de/
' Füllfarbe
' für Schrift RaZelle.Font.ColorIndex
Dim RaBereich As Range                  ' Variable für Bereich
Dim RaZelle As Range                    ' Variable für Zelle
' Bereich der Wirksamkeit
Set RaBereich = Range("B2:B33, O21:O26")
' noch mehr Bereiche
'Set RaBereich = Union(Range("C11:AG11 , C13:AG13, C15:AG15 , C17:AG17"), _
Range("C35:AE35, C37:AE37, C43:AG43, C45:AG45 , C47:AG47 , C49:AG49"), _
Range("C67:AF67 , C69:AF69 , C75:AG75 , C77:AG77 , C79:AG79 , C81:AG81"), _
Range("C99:AF99 , C101:AF101, C107:AG107 , C109:AG109 , C111:AG111"), _
Range("C127:AG127 , C129:AG129 , C131:AG131 , C133:AG133 , C139:AF139"), _
Range("C155:AG155, C157:AG157 , C159:AG159 , C161:AG161 , C163:AG163"), _
Range("C179:AF179 , C181:AF181, C187:AG187 , C189:AG189 , C191:AG191"))
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If Not RaBereich Is Nothing Then
'ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In RaBereich
If IsDate(RaZelle) Then
Application.EnableEvents = False
RaZelle = DateSerial(Year(RaZelle) - 1, Month(RaZelle), Day(RaZelle))
RaZelle.NumberFormat = "dd/mm/yy"
Application.EnableEvents = True
End If
Next RaZelle
'ActiveSheet.protect ("Passwort")
End If
Set RaBereich = Nothing                 ' Variable leeren
End Sub

Anzeige
AW: Vorjahr schreiben
18.09.2010 21:59:27
Mat
Hallo Hajo,
das Makro funkt bei mir nicht. Excel ergänzt in allen Zellen das Jahr 2010.
Gruß Mat
AW: Vorjahr schreiben
18.09.2010 22:04:06
Hajo_Zi
Hallo Mat,
Du hast den Bereich der Wirksamkeit im Code schon beachtet bzw. angepast?
Du hast den Code schon unter der Tabelle angeordnet, nicht Modul, nicht DieseArbeitsmappe?
Gruß Hajo
AW: Vorjahr schreiben
18.09.2010 22:07:36
Mat
Hallo Hajo,
ja, habe den code in die Tabelle. Das Datum schreibe ich in Spalte B. Was fehlt noch?
Gruß Mat
AW: Vorjahr schreiben
18.09.2010 22:08:44
Hajo_Zi
Hallo Mat,
meine Frage
Du hast den Bereich der Wirksamkeit im Code schon beachtet bzw. angepast?

hast Du schon beachtet?
Gruß Hajo
Anzeige
AW: Vorjahr schreiben
18.09.2010 22:14:03
Mat
Hallo Hajo,
sorry, jetzt hab ich geändert. Klappt prima!
Vielen Dank
Gruß Mat
AW: Vorjahr schreiben
18.09.2010 22:17:34
jowe
Hallo Mat,
warum nicht nach Fertigstellung der Eingaben ganz einfach:
Suche&Ersetzen
suche 2010 - ersetze 2009
die ganze programmierei ist da doch überfl....
AW: Vorjahr schreiben
20.09.2010 12:33:49
Klaus
Hallo Jowe,
das würd ich nie so machen. Die Chance, dass dabei unbeabsichtigt eine Formel zerschossen wird oder ein falscher Wert mitgeändert (wenn zb. 2010km weit gefahren wurde) wäre mir viel zu hoch.
(Allerdings hätte ich hier auch nicht zu VBA gegriffen, sondern eine Hilfsspaltenlösung benutzt).
Grüße,
Klaus M.vdT.
AW: Vorjahr schreiben
20.09.2010 17:08:36
robert
Hi,
ich finde den vorschlag von Jowe schon OK-denn
das datum wird doch sicher in einer datumsspalte eingegeben
und nicht kreuz und quer in der datei verstreut.
daher nur datumsspalte suchen-ersetzen
gruß
robert
Wenn die Datumsspalte markiert ist...
20.09.2010 18:42:18
JoWe
und Suchen und ersetzen nur auf die Markierung beschränkt wird, ist das völlig risikolos!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige