Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1428to1432
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Automatisches Auslesen und kopieren

Automatisches Auslesen und kopieren
02.06.2015 13:07:49
Arne
Hallo zusammen,
da ich zurzeit vor einem Problem stehe und hier schon einige nützliche Tipps finden konnte, habe ich mich hier angemeldet.
Mein Problem:
Ein externes Programm liefert in (un)regelmäßigen Abständen eine Excel Datei. Diese wird jedes Mal mit neuen Werten überschrieben (z.B. Range (A1:F300)). Um jedoch alle Werte zu speichern, soll Excel, sobald sich ein Wert in der Quelldatei (z.B. result.xls) geändert hat, alle Werte rauskopieren und jedes Mal in eine neue Excel Datei speichern
Durch Recherche habe ich schon einmal einen Ansatz gefunden welche die Werte in Tabelle 1 ausliest und in Tabelle 2 kopiert. Jedoch sind alle Versuche gescheitert eine externe Datei auszulesen und die Werte in eine neu erstellte Datei zu kopieren. Die Benennung der neuen Dateien sollte dabei auch automatisch funktionieren und kann einfach durchnummeriert werden.
Ich hoffe jemand kann sich erbarmen und mir weiterhelfen.
Danke im Voraus!

Private Sub Worksheet_results()
Static Zellwert As Date
If Tabelle1.Range("A1:F300").Value  Zellwert Then
Tabelle1.Range("A1:F300").Copy
BlattName.Range("A" & (Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row) + 1).PasteSpecial Paste:= _
xlPasteValues
End If
Zellwert = Tabelle1.Range("A1:F300")
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisches Auslesen und kopieren
02.06.2015 17:25:45
Klexy
Dieser Code kopiert was aus Tabelle1 in Tabelle2? Wirklich?

AW: Automatisches Auslesen und kopieren
03.06.2015 12:10:31
Arne
Oh tut mir leid!
Bei all den rumprobieren habe ich das falsche Makro gepostet.
Dieser funktioniert:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then
Tabelle1.Range("A1").Copy
Tabelle2.Range("A" & (Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row) + 1).PasteSpecial
End If
End Sub
Wäre super wenn ich ein paar Tipps bekommen könnte,
Danke

AW: Automatisches Auslesen und kopieren
03.06.2015 13:59:03
Michael
Hallo Arne,
eine etwas genauere Erklärung der Umstände wäre hilfreich...
Ist es so, daß Du eine Excel-Datei mit Makro erstellen möchtest, die nichts anderes tut, als zwei weitere Datein zu öffnen und zu vergleichen und ggf. eine davon auf einen neuen Namen zu kopieren?
Dann wäre die Struktur in etwa so:
1. Vergleichen.xlsm ist die Datei mit dem Makro
2. result.xlsx ist die jeweils "neue" Datei, die zum Vergleichen mit dem letzten Stand
- entweder auf letztes_result.xlsx zu kopieren wäre, damit man nicht jeweils nach dem zuletzt gespeicherten Stand suchen muß, um eine Vergleichsdatei zu haben (d.h., es werden zwei Kopien angelegt, einmal diese und einmal die "hochgezählte")
- oder den Namen der zuletzt gespeicherten Datei in Vergleichen.xlsm ablegt (was dann auch das Hochzählen vereinfachen würde).
3. Die gespeicherten Kopien result_0001.xlsx bis result_n.xlsx (oder z.B. mit Datum result_2015_06_03[_001].xlsx, wobei der Zähler in Klammern notwendig wäre, wenn sich mehrmals täglich Änderungen ergeben würden).
Wie ist die Struktur von result.xlsx? Gibt es mehrere Blätter? Muß die Datei kopiert werden, wenn sich auch nur 1 Zelle geändert hat? Dann bekommst Du möglicherweise sehr schnell sehr viele Dateien: das wird ziemlich unübersichtlich, weil Du jede einzelne öffnen müßtest, um einen Überblick zu erhalten - und den willst Du über kurz oder lang sicher haben.
In dem Fall würde ich zu einer "datenbankähnlichen" Speicherung raten, d.h. die interessanten Felder, meinetwegen mit einer zusätzlichen Datumsspalte, zeilenweise untereinander schreiben, und zwar in *einer einzigen* Tabelle.
Darüber solltest Du Dir zunächst einmal konzeptionelle Gedanken machen, bevor Du mit VBA hantierst.
Grundsätzlich mußt Du zunächst die Daten vergleichen, das könnte man auf Shell-Ebene machen (also: zunächst einen Befehl in der DOS-Box aufrufen, nämlich COMP) oder innerhalb von Excel, etwa durch Anpassung des hier vorgestellten Makros: http://www.excel-inside.de/vba-loesungen/datei/324-zwei-arbeitsmappen-miteinander-vergleichen
Der zweite Schritt ist das Kopieren. Wenn die Datei nur ein (relevantes) Blatt hat, findest Du u.a. hier im Forum Lösungen zum Erzeugen einer Datei aus einem Blatt, z.B. hier: https://www.herber.de/forum/archiv/1372to1376/1374800_Active_Sheet_in_neue_Datei_mit_VBA.html
Schöne Grüße,
Michael

Anzeige
AW: Automatisches Auslesen und kopieren
03.06.2015 18:43:06
Klexy
Ich hab mal was zusammengebastelt, aber das kommt erst morgen.
Bleib gespannt.

OT: @Klexy
04.06.2015 15:44:15
Michael
Hi Klexy,
Du bist aa aus N?
Wennst amal Lust auf a Bierla hast, kannst mir ja a mail schicken,
schöne Grüße,
Michael

AW: OT: @Klexy
06.06.2015 14:41:44
Michael
Hi Klexy,
das war leider zu kurzfristig, ich war gestern bis in den Abend unterwegs und hab Deinen post erst im Moment gesehen.
Behalte es fürs nächste Mal im Auch: hört sich interessant an, hab ne EOS 1000D, mich aber seit nem Jahr mehr in X vertieft als fotografiert - und wenn, dann nur als Grundlage für Montagen.
Schöne Grüße,
Michael

Anzeige
AW: Automatisches Auslesen und kopieren
05.06.2015 10:19:33
Klexy
So.
Diese Datei
https://www.herber.de/bbs/user/98049.xls
ist die zentrale Steuerdatei.
Alle Dateinamen und Blattamen und Zellbereiche sind als Variablen angelegt, die du nach deinen Bedürfnissen anpassen musst.
Die Variable für die Steuerdatei ist auf Automatisches Auslesen und kopieren_Arne S.xls gesetzt.
Achtung: durch das Hochladen wurde der Dateiname auf 98049.xls geändert.
Die Quelldatei "result.xls" soll das Tabellenblatt "Tabelle1" haben. Diese Werte kannst du natürlich später im Code verändern, wie du sie brauchst.
Die Funktionsweise ist im Code kommentiert, ich hoffe verständlich.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige