ich habe schon einiges gelesen, was ähnlich meiner Frage geklungen hat, allerdings hat das bisher nicht zum Erfolg geführt, daher meine Frage:
Ich habe im Tabellenblatt "Uebersicht" Werte in den Spalten B, C, D. Dabei wird täglich, um eine Zeile nach unten verrutscht, der aktuelle Wert eingetragen. Nun soll immer der aktuellste und damit am weitesten unten stehende Wert aus den genannten Spalten in mehrere Tabellenblätter kopiert werden und dort immer am Ende einer Spalte angefügt werden, sodass auch dort die Historie zu erkennen ist. Beispiel:
Tabellenblatt "Uebersicht" A B C 1 2 3 4 5 6 7 8 9 <-- das soll kopiert werden, also immer die letzte Zeile
Tabellenblatter "Kunde1" A B C 1 2 3 4 5 6 7 8 9 <-- die kopierten Werte aus "Uebersicht" sollen am Ende der Tabelle eingetragen werden, zudem soll in Spalte D das aktuelle Datum eingetragen werden
06.08.2018, 15:10 (Dieser Beitrag wurde zuletzt bearbeitet: 06.08.2018, 15:10 von EbyAS.)
Hallo, leider lässt sich das nur per VBA lösen. Aber dazu brauch man das Sheet um sowas ein zu bauen. Also du müsstet Dir schon die Mühe machen eine Demo Version hier hoch zuladen.
Grüße aus Nürnberg Armin Ich benutze WIN 10 (64bit) und Office 19 (32bit)
(06.08.2018, 15:10)EbyAS schrieb: Hallo, leider lässt sich das nur per VBA lösen. Aber dazu brauch man das Sheet um sowas ein zu bauen. Also du müsstet Dir schon die Mühe machen eine Demo Version hier hoch zuladen.
Hallo EbyAS,
alles klar, vielen Dank für deine Bemühungen! Siehe anbei.
Zitat:Ich habe im Tabellenblatt "Uebersicht" Werte in den Spalten B, C, D.
Tabellenblatt "Uebersicht" A B C 1 2 3
Zunächst möchten wir erst mal Ordnung schaffen. In Deiner Demo existiert keine Tabelle "Übersicht" also gehe ich davon aus das die Tabelle1 diese sein soll! Denn wenn ich Bezug auf "Tabelle1" nehme findet er im "Original" dann natürlich keine Tabelle "Übersdicht". Genauso verhält es sich mit den Spalten B,C,D oder A, B,C was soll ich benutzen?
Grüße aus Nürnberg Armin Ich benutze WIN 10 (64bit) und Office 19 (32bit)
(06.08.2018, 15:36)EbyAS schrieb: Zunächst möchten wir erst mal Ordnung schaffen. In Deiner Demo existiert keine Tabelle "Übersicht" also gehe ich davon aus das die Tabelle1 diese sein soll! Denn wenn ich Bezug auf "Tabelle1" nehme findet er im "Original" dann natürlich keine Tabelle "Übersdicht". Genauso verhält es sich mit den Spalten B,C,D oder A, B,C was soll ich benutzen?
Sorry, das hatte ich in der Eile vergessen umzubenennen. Bitte nutze es so, wie es jetzt in der Datei ist. Ich denke, das ist am einfachsten. Ich denke, ggf. den Code um einzelne Spalten anzupassen, traue ich mir zu. Vielen herzlichen Dank.
Hallo, hier ein Versuch. Bitte beachten es müssen 3 Werte vorhanden sein sonst passiert garnichts. Also in Spalte A,B und C nach der letzeten Eingabe (Spalte C) wird die Zeile Übertragen in Klient(n). Wichtig! Es darf keine Tabelle mit irgend was existieren, diese würde überschrieben. Nur für den Fall, dass das Original weitere Seiten auser Klient(n) und Uebersicht hat. Das müsste im Code berücksichtigt werden. Übrigens habe ich nicht "Übersicht" sondern "Uebersicht" ohne Umlaut als Tabellen-Namen verwandt.
Grüße aus Nürnberg Armin Ich benutze WIN 10 (64bit) und Office 19 (32bit)
hier mal eine Alternative, die nur einmal am Tag das Kopieren zuläßt:
Code:
Sub Test() Dim loLetzte As Long Dim loLetzte2 As Long Dim loA As Long Dim loB As Long loLetzte2 = Sheets("Klient1").Cells(Rows.Count, 1).End(xlUp).Row If Sheets("Klient1").Cells(loLetzte2, 1) = Date Then Exit Sub With Sheets("Tabelle1") loLetzte = .Cells(Rows.Count, 1).End(xlUp).Row '.Range(.Cells(loLetzte, 1), .Cells(loLetzte, 3)).Copy For loA = 1 To Sheets.Count If Sheets(loA).Name <> "Tabelle1" Then loLetzte2 = Sheets(loA).Cells(Rows.Count, 1).End(xlUp).Row + 1 Sheets(loA).Cells(loLetzte2, 1) = Date For loB = 1 To 3 Sheets(loA).Cells(loLetzte2, loB + 1) = .Cells(loLetzte, loB) Next End If Next End With End Sub
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.