2.7k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo an alle.

Ich suche eine VBA Code in der ich in
einer Zelle B2 des Tabellenblattes1
einen Text eingebe und dieser Text dann
in Zelle A6 des gleichen Tabellenblattes
kopiert wird

Bei der nächsten Eingabe eines Textes
in die Zelle B2 soll dieser Text aber in die
anschließende Zelle kopiert werden also A7


Beim Datum hat dies schon funktioniert
anbei der Code. Leider weiß ich nicht
wie ich den Code von Datum auf Text umschreibe

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

Vielen Dank für Eure Hilfe

3 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Petro,

ersetze CDate(Datum) durch Range("B2")

alles mit Datum kann entfallen.

Gruß Hajo
0 Punkte
Beantwortet von
Hallo Hajo,

vielen, vielen Dank für die schnelle Antwort.
Leider funktioniert das nicht wenn ich
CDate(Datum) durch Range("B2") ersetze
und alles was mit Datum zutun hat lösche.

Momentan schaut der code noch genauso wie oben folgendermaßen aus

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

1. das ich - dim datum as date- lösche verstehe ich noch da ich damit das datum erzeuge. aber was ist mit , zeile as long? gehört da nicht auch ein dim davor? oder kann ich das auch löschen?
2. wenn ich das datum bei - datum =range("B2") - dann muss ich doch irgentwas anderes vor =range("B2") setzten

Sorry für meine Fragen aber ich bin ein absoluter Anfänger, aber irgentwie will ich das auch verstehen und nicht einfach übernehmen.

Vielen Dank
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all

ein wenig korrigiert

einen cirkelbezug entfernt
ueberfluessige variablen entfernt

gruss nighty

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Sheets("Tabelle1")
If Target.Cells.Address = "$B$2" Then
.Cells(Sheets("Tabelle1").Range("B" & Rows.Count).End(xlUp).Offset(1, 0).Row, 1) = Range("B2")
End If
Application.EnableEvents = True
End Sub
...