täglich Daten in neue Zeile kopieren
Hallo,
Ich habe eine Tabelle mit 20 Messwerten. Ich muss täglich alle 20 Werte neu eingeben. Ich möchte eine zweite Tabelle erstellen, in der meine 20 Messwerte täglich kopiert werden. Jeder Tag sollte in einer eigenen Zeile sein. Somit würde meine 2 Tabelle alle Messwerte aller Tage beinhalten. Leider weiß ich nicht wie ich die Werte immer in eine neue Zeile kopieren kann.
Vielen Dank für Eure Unterstützung bereits im voraus!
LG chrisku
Antwort schreiben
Antwort 1 von MixMax vom 28.06.2019, 19:32 Options
erstelle ein macro was die 20 zeilen markiert und auf Tabellenblatt 2 einfügt und dabei die alten werte nach unten schiebt:
Range("A2:F21").Select
Selection.Copy
Sheets("Tabelle2").Select
Rows("1").Select
Selection.Insert Shift:=xlDown
Sheets("Tabelle1").Select
Range("A1").Select
Antwort 2 von Beverly vom 28.06.2019, 19:32 Options
Hi Chris,
deine Werte stehen alle in Tabelle1 Zeile 1? Hiermit wird die gesamte Zeile 1 nach Tabelle2 kopiert, jeweils in die nächste freie Zeile
Sub kopieren()
With Worksheets("Tabelle2")
Worksheets("Tabelle1").Rows("1:1").Copy .Cells(IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1, 1)
End With
End Sub
Bis später,
Karin
Antwort 3 von chriskuf vom 28.06.2019, 20:42 Options
Hallo Zuerst einmal Danke für die superschnellen Antworten. So viel Zeit muss sein!
Ich würde gerne beide (von MixMax und Berverly) verfolgen.
MixMax
Frage: Muss ich die Formel in "Code anzeigen" kopieren. Ich habe leider keine Ahnung von Macros.
Beverly
Deine Formel auch in "Code anzeigen" kopieren?
Bin ein Excel Greenhorn - hoffe Ihr habt Geduld mit mir ;-)
LG
Antwort 4 von Beverly vom 28.06.2019, 20:53 Options
Hi Chris,
wenn du auf "Code anzeigen" gehst, gelangst du in den VBA-Editor (geht auch mit Alt+F11). Dort gibt es in der Symbolleiste -> Einfügen -> Modul (Achtung: "Modul", nicht "Klassenmodul"!). In dieses Modul kopierst du den Code. Aufrufen kannst du ihn dann aus der Tabelle heraus über Extras -> Makro -> Makros -> Ausführen.
Bis später,
Karin
Antwort 5 von chriskuf vom 28.06.2019, 21:13 Options
Hallo Beverly,
Das scheint zu funktionieren wenn ich alles Zahlen in die erste Zeile schreibe. Danke. Ich habe jedoch in der ersten Zeile Messwerte die ich dort hin kopiere (zB in F1 steht =Messwerte!G11). Diese Zahlen werden nicht in Tabelle 2 kopiert. Kannst Du mir da auch weiterhelfen?
LG
Antwort 6 von Beverly vom 28.06.2019, 21:27 Options
Hi Chris,
wenn eine Formel drin steht, muss man nach dem Kopieren am neuen Ort den Wert einfügen, weil andernfalls der Bezug bestehen bleibt. Das wird mit xlValues (=Werte) gemacht. Lässt sich auch mit dem Makrorecorder aufzeichnen, wenn du Strg+C drückst, dann Bearbeiten -> Inhalte Einfügen -> Werte gehst
Sub kopieren()
With Worksheets("Tabelle2")
Worksheets("Tabelle1").Rows("1:1").Copy
.Cells(IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1, 1).PasteSpecial Paste:=xlValues
End With
Application.CutCopyMode = False
End Sub
Bis später,
Karin
Antwort 7 von chriskuf vom 28.06.2019, 21:38 Options
Hallo,
Ich bin begeistert - echt toll wie (schnell) Du das machst. Du scheinst ein wirklicher Excel Experte zu sein!!! Ich checke zwar nicht alles aber es funktioniert ;-))
Zur Zeit rufe ich das Makro immer manuell auf. Kann ich das automatisieren? 1 x täglich wenn ein bestimmter Messwert eingegebn wird?
LG
Antwort 8 von Beverly vom 28.06.2019, 22:12 Options
Hi Chris,
meinst du einen bestimmten "Messwert" oder eine bestimmte "Zelle" oder beides? Das ist wichtig zu wissen, wenn der Code automatisch ausgeführt werden soll.
Eine andere Möglichkeite wäre auch, in der Tabelle eine Schaltfläche zu erstellen, und ihr das Makro zuzuweisen. Da hast du eine bessere Kontrolle, wann der Code gestartet wird.
Aber die Entscheidung darüber überlasse ich dir.
Bis später,
Karin
PS: ich kann dir allerdings erst morgen antworten, da ich jetzt Feierabend mache (muss morgen ziemlich früh raus)
Antwort 9 von chriskuf vom 28.06.2019, 22:38 Options
Servus Karin,
Das mit er Schaltfläche wäre sicher besser. Fehler könnten besser ausgeschlossen werden. Bis morgen - schönen Tag!
P.S.: Sehr nett von Dir, dass Du Dir die Zeit nimmst und mir hilfst. Vielen Dank nochmal!
LG Chris
Antwort 10 von Beverly vom 29.06.2019, 05:47 Options
Hi Chris,
erstelle eine Schaltfläche aus der Formular-Symbolleiste. Dazu musst du die Symbolleiste Formular aktivieren, dort auf das Element "Schaltfläche" klicken (Cursor wird zu einem "+") und bei gedrückter Maustaste ziehst du das Element in der Tabelle auf die entsprechende Größe. Dann öffnet sich ein Menü "Makro zuweisen". Dort wählst du den Namen "kopieren" aus und drückst OK.
Bearbeiten kannst du die Schaltfläche nach einem Rechtsklick auf die darauf.
Bis später,
Karin
Antwort 11 von chriskuf vom 29.06.2019, 22:30 Options
Hallo Karin,
Auch das funktioniert -echt toll! Kann ich die Schaltfläche noch unterschiedlich beschriften (speichern/gespeichert) Beim öffnen der Tabelle oder wenn ein Messwert verändert wird, wird die Steuervariable zurückgesetzt. Könnte das funktionieren...
LG
Antwort 12 von Beverly vom 30.06.2019, 07:40 Options
Hi Chris,
schreibe ins Klassenmodul DieseArbeitsmappe folgenden Code
Private Sub Workbook_Open()
Worksheets("Tabelle1").Shapes("Button 1").TextFrame.Characters.Text = "Speichern"
End Sub
als erste Zeile im "kopieren"-Modul diese Zeile
Worksheets("Tabelle1").Shapes("Button 1").TextFrame.Characters.Text = "Gespeichert"
und ins Klassenmodul der Tabelle (ich habe angenommen, dass deine Messwerte im Bereich A1:T1 eingetragen werden)
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:T1")) Is Nothing Then Exit Sub
ActiveSheet.Shapes("Button 1").TextFrame.Characters.Text = "Speichern"
End Sub
Andererseits - was verstehst du unter "Steuervariable zurücksetzen"? Wird das auch über Code gesteuert? Dann brauchst du den letzten Code nicht, sondern kannst ActiveSheet.Shapes("Button 1").TextFrame.Characters.Text = "Speichern" in die Prozedur für das Zurücksetzen der Steuervariablen schreiben.
Bis später,
Karin
Antwort 13 von chriskuf vom 30.06.2019, 12:37 Options
Hallo Karin,
Wie komme ich ins Klassenmodul der Tabelle und der Arbeitsmappe?
LG
Antwort 14 von Beverly vom 30.06.2019, 14:29 Options
Hi Chris,
wenn du einen Rechtsklick auf den Tabellenreiter machst -> Code anzeigen, bist du im Klassenmodul der Tabelle. Im Projektexplorer (linkes Fenster) siehst du dann auch dein VBA-Projekt und DieseArbeitsmappe. Nach einem Doppelklick darauf bist du im Codefenster des Klassenmoduls DieseArbeitsmappe.
Bis später,
Karin
Antwort 15 von chriskuf vom 01.07.2019, 19:42 Options
Hallo Karin,
das mit speichen/gespeichert lasse ich. Ich zeige nun Datum und Uhrzeit der letzten Übertragung (Makrodurchführung) an. Eine Frage habe ich noch. Gibt es eine Möglichkeit die Makros zu aktivieren ohne die Frage beim Öffnen der Datei? Einfach immer aktivieren?
Ich möchte mich nochmals ganz ganz herzlich bei Dir bedanken!!! Echt super, wie Du mir geholfen hast!!! 1000x DANKE
LG Chris
Antwort 16 von Beverly vom 01.07.2019, 20:42 Options
Hi Chris,
dass ich dir bei der Lösung deiner Problem helfe, ist doch selbstverständlich. :-)))
*Threadedit* 20:50:24
Admininfo: Bitte achte auf das geltende Urheberrecht, welches nach §63 UrHG Quellangaben für kopierte Texte und Textpassagen vorschreibt. Siehe FAQ 5.