Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Eingabe in andere Zelle exportieren und fortlaufend eintragen ?





Frage

Hallo ihr Excel-Gurus, gibt es eine Möglichkeit in Excel in einem Eingabefeld ein Datum einzugeben, so dass dies in einer anderen Tabellenzelle (oder Blatt) erscheint. Und, nun kommts, dass jedes neue Datum, das in der Eingabe gemacht wird, direkt darunter in die nächste Zelle geschrieben wird. Danke für die Hilfe Jochen

Antwort 1 von dein_shrink

Hi,

ein Excel-Guru bin ich sicher nicht. Vielleicht verstehe ich nur deshalb deine Frage nicht oder hab einfach ein Brett vorm Kopf.

Willst du erreichen,
Zitat:
dass jedes neue Datum, das in der Eingabe gemacht wird, direkt darunter in die nächste Zelle geschrieben wird.
oder willst du das vermeiden? Wo soll das "neue Datum" denn hin und mit welchem Ziel?

Könntest du mal bitte ein Beispiel nennen?

Gruß
ShrinK

Antwort 2 von 090365

Also optimal wäre wenn jedes neue Datum in Tabelle1 aus Zelle A1 in Tabelle2 in Zelle A1, A 2 ... geschrieben würde.

Also =Tabelle1!A1, dann =Tabelle1!A2, dann =Tabelle1!A3 und so weiter.

Habe keine Ahnung wie man so etwas automatisch definieren könnte.

Hoffentlich habe ich mich jetzt klarer ausgedrückt.

Jochen

Antwort 3 von coros

Moin Jochen,

da Du nur schreibst, wenn ein neues Datum in Zelle A1 geschrieben wird, nicht aber was Du unter einemneuen Datum verstehst, kommen nachfolgend zwei VBA Code. Kopiere je nach dem welches Du benutzen möchtest, in das VBA Projekt der Tabelle, in dem Du das Datum eingibst.

1. Code


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Datum As Date, Zeile As Long
Datum = Range("A1")
Zeile = Sheets("Tabelle2").Range("A65536").End(xlUp).Offset(1, 0).Row
If Target.Cells.Address = "$A$1" Then
Sheets("Tabelle2").Cells(Zeile, 1) = CDate(Datum)
End If
End Sub


Bei dem Code wird immer wenn Du ein Datum in Blatt "Tabelle1" Zelle A1 eingibst, das Datum in die nächste freie Zeile in Tabelle2 Spalte A kopiert.


2. Code


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Datum As Date, Zeile As Long
Datum = Range("A1")
Zeile = Sheets("Tabelle2").Range("A65536").End(xlUp).Offset(1, 0).Row
If Target.Cells.Address = "$A$1" Then
If Sheets("Tabelle2").Cells(Zeile - 1, 1) <> Datum Then
Sheets("Tabelle2").Cells(Zeile, 1) = CDate(Datum)
End If
End If
End Sub


Bei dem Code wird das Datum aus Tabellenblatt "Tabelle1" Zelle A1 kopiert und in Blatt "Tabelle2" in die erste freie Zeile in Spalte A eingefügt, wenn sich das Datum geändert hat. Ist es das gleiche Datum wie das letzte Datum in Blatt "Tabelle2", dann wird das Datum nicht kopiert.

Ich hoffe, Du kommst klar. Bei Fragen oder Problemen zu dem Code, oder wenn nicht das richtige dabei war, melde Dich. Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in Anleitung zum VBA Projekt “Tabelle" nach. Dort findest Du eine bebilderte Anleitung, die Dir helfen sollte.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von 090365

Wow,

das klingt ja super.

Werde das mal testen.

Habe von meinem Chef die Aufgabe bekommen für die Mitarbeiter ein Urlaubsformular zu gestalten.

Da ist die zweite Variante wahrscheinlich die bessere Wahl.. Bei Doppeleingaben wird nichts hinzugefügt.

Würde das gerne damit verknüpfen

https://supportnet.de/threads/1013517

Muss jetzt nur mal eben wech.

Werde am Wochenende sicher noch aktiv im Supportnet.

Danke

Jochen

Antwort 5 von 090365

Hallo, habe mit VBA keine Erfahrung.

Wollte das für die Spalte B1 übernehmen, dann habe ich folgende Fehlermeldung erhalten

Mehrdeutiger Name:Worksheet Change

Hiiiiiiiiiilfe.

Vermute, dass man das dann in den gleichen VBA Code implementieren muss.

MfG

Jochen

P.S. Bekomme hiermit gleich noch einen Crashkurs in VBA :-))

Antwort 6 von coros

Hi Jochen,

kannst Du mal klar und deutlich schreiben, was Du eigentlich möchtest? Ich kann ehrlich nichts damit anfangen was Du in Deiner Antwort 4 meinst. In wie weit möchtest Du das mit dem Code aus dem Beitrag verknüpfen? Da müsstest Du schon mal etwas genauer schreiben,wie Du das meinst.

Zu Deiner nächsten Frage, Du darfst natürlich nicht den kompleten Code nochmals einfügen. Das Worksheet_Change Ereignis darf nur einmal pro Tabellenblatt vorkommen. Alles weitere muss dann immer in das vorhandenen Worksheet_Change Ereignis mit eingebunden werden. Da Du aber auch hier keine genaueren Angaben machst, was Du mit

Zitat:
Wollte das für die Spalte B1 übernehmen

meinst, kann ich auch da nur raten. Wenn Du anstelle von A1 das Datum in B1 eingeben möchtest und dann das Datum von Zelle B1 in das andere Blatt in Spalte B kopiert werden soll, dann müssen beide VBA Code folgendemaßen aussehen.

1. Code

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim Datum As Date, Zeile As Long 
Datum = Range("B1") 
Zeile = Sheets("Tabelle2").Range("B65536").End(xlUp).Offset(1, 0).Row 
If Target.Cells.Address = "$B$1" Then 
Sheets("Tabelle2").Cells(Zeile, 2) = CDate(Datum) 
End If 
End Sub



2. Code

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim Datum As Date, Zeile As Long 
Datum = Range("B1") 
Zeile = Sheets("Tabelle2").Range("B65536").End(xlUp).Offset(1, 0).Row 
If Target.Cells.Address = "$B$1" Then 
If Sheets("Tabelle2").Cells(Zeile - 1, 2) <> Datum Then 
Sheets("Tabelle2").Cells(Zeile, 2) = CDate(Datum) 
End If 
End If 
End Sub 


Wenn Du aber beides möchtest, also Datumseingabe in A1 und B1 dann sehen die Code so aus:


1. Code

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Datum_A1 As Date, Datum_B1 As Date, Zeile_A As Long, Zeile_B As Long
Datum_A1 = Range("A1")
Datum_B1 = Range("B1")
Zeile_A = Sheets("Tabelle2").Range("A65536").End(xlUp).Offset(1, 0).Row
Zeile_B = Sheets("Tabelle2").Range("B65536").End(xlUp).Offset(1, 0).Row
If Target.Cells.Address = "$A$1" Then
Sheets("Tabelle2").Cells(Zeile_A, 1) = CDate(Datum_A1)
End If
If Target.Cells.Address = "$B$1" Then
Sheets("Tabelle2").Cells(Zeile_B, 2) = CDate(Datum_B1)
End If
End Sub



2. Code

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Datum_A1 As Date, Datum_B1 As Date, Zeile_A As Long, Zeile_B As Long
Datum_A1 = Range("A1")
Datum_B1 = Range("B1")
Zeile_A = Sheets("Tabelle2").Range("A65536").End(xlUp).Offset(1, 0).Row
Zeile_B = Sheets("Tabelle2").Range("B65536").End(xlUp).Offset(1, 0).Row
If Target.Cells.Address = "$A$1" Then
If Sheets("Tabelle2").Cells(Zeile_A - 1, 1) <> Datum_A1 Then
Sheets("Tabelle2").Cells(Zeile_A, 1) = CDate(Datum_A1)
End If
End If
If Target.Cells.Address = "$B$1" Then
If Sheets("Tabelle2").Cells(Zeile_B - 1, 2) <> Datum_B1 Then
Sheets("Tabelle2").Cells(Zeile_B, 2) = CDate(Datum_B1)
End If
End If
End Sub


So, nun habe ich eine Menge geschrieben. Vielleicht ist ja was passendes dabei. Wenn nicht, dann schreib mal etwas mehr als nur die wagen Angaben aus den letzten Beiträgen.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 7 von 090365

Sorry,

dass ich mich so unklar ausdrücke.Anscheinend ein Problem von mir. Sagt meine Freundin wenigstens.

Zum ersten, Die Zweite Lösung Code2 scheint genau das zu sein, was ich suche.

Zu deinem Vorwurf, dass ich mich so unklar ausdrücke.

Ich weiß selber noch nicht so genau, wie ich mein Projekt realisiere.

Gibt es eine Möglichkeit dir das auf direktem Wege genauer zu erklären. Würde den Rahmen hier sprengen.

Meine Mail: eldorado2001@gmx.de

Grüße

Jochen

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: