457 Aufrufe
Gefragt in Tabellenkalkulation von
Ich habe eine Excel-Datei mit folgendem Aufbau:
Tabellenblatt 1 ist ein Formular, in das Werte eingetragen werden außerdem enthält es ein Datumsfeld mit dem aktuellen Tagesdatum.
Pro Monat gibt es je ein Tabellenblatt mit Kalender und den Spaltenüberschriften entsprechend den Spaltenüberschriften im Formular.
Die Werte aus dem Formular sollen nun in die Zeile mit dem identischen Datum in den Monatstabellenblättern eingetragen werden.
Die Zellen mit den Daten im Formular sind: A9 (für das Datum), B9, C9, E9, G9, I9, K9, M9, O9.
Diese Daten müssen in die Spalten B,C,D,E,G,H,I übertragen werden. Die Zeile ergibt sich aus dem Datum. Ich bin absoluter VBA-Neuling und freue mich daher über jede Hilfe.

6 Antworten

0 Punkte
Beantwortet von m-o Profi (22.7k Punkte)
Hallo,

es wäre gut, wenn du eine Beispieldatei, die im Aufbau deiner Orginaldatei entspricht, auf einem Hoster deiner Wahl (z.B. hier) hochlädst und den Link dann hier einstellst. Das erspart im Zweifel eine Menge Rückfragen und Änderungen.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.,

vielen Dank für deine Antwort.
Um diese Datei geht es: https://www.magentacloud.de/lnk/SnISvi92
0 Punkte
Beantwortet von
Hi All ^^

Wie gewünscht :-)

Gruss Nighty

Das gesuchte Datum
Active Worksheet
Active Zelle in Spalte A

Quelle ActiveWorksheet,Spalte A die ActiveZelle

Ziel Worksheet(Monatsname des Datums),Spalte A die gefundene Zelle


Spaltennummern bei bedarf anpassen !

Quellspalten 2 3 5 7 9 11 13 15
Zielspalten 2 3 4 5 7 8 9 10

Sub Übertrag()
Dim MeinDatum As Range
With Worksheets(MonthName(Month(Cells(ActiveCell.Row, 1))))
Set MeinDatum = .Cells.Find(What:=CDate(Format(Cells(ActiveCell.Row, 1))), After:=.Range("A1"), LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)
.Cells(MeinDatum.Row, 2) = Cells(ActiveCell.Row, 2)
.Cells(MeinDatum.Row, 3) = Cells(ActiveCell.Row, 3)
.Cells(MeinDatum.Row, 4) = Cells(ActiveCell.Row, 5)
.Cells(MeinDatum.Row, 5) = Cells(ActiveCell.Row, 7)
.Cells(MeinDatum.Row, 7) = Cells(ActiveCell.Row, 9)
.Cells(MeinDatum.Row, 8) = Cells(ActiveCell.Row, 11)
.Cells(MeinDatum.Row, 9) = Cells(ActiveCell.Row, 13)
.Cells(MeinDatum.Row, 10) = Cells(ActiveCell.Row, 15)
End With
End Sub


p.s.
Mein Login hat sich irgendwie verabschiedet und funktioniert nicht mehr :-)
0 Punkte
Beantwortet von
Hallo nighty_,

vielen Dank für die schnelle Antwort.
Leider erhalte ich beim Ausführen des Makros die folgende Fehlermeldung:

Laufzeitfehler '91'
Objektvariable oder With-Blockvariable nicht festgelegt.

Woran kann das liegen?
0 Punkte
Beantwortet von
Hi All ^^

Es wird folgendes vorrausgesetzt !

Keine geschützten Bereiche
Keine verbundenen Zellen

12 Tabellenblätter
Namen ohne Leerzeichen

Januar,Februar,März,April
Mai,Juni,Juli,August
September,Oktober,November,Dezember

Das gesuchte Datum ist die Active Zelle(auf dieser Zelle bleiben bei start des Makros)

Gruss Nighty
0 Punkte
Beantwortet von
Hallo nighty_,

vielen Dank für die Antwort und die Hilfe.
Das hat mich sehr viel weiter gebracht.
...