Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
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

Übertragung von aktuellen Datensätzen

Übertragung von aktuellen Datensätzen
03.12.2020 15:00:27
aktuellen
Hallo Zusammen,
ich habe folgendes Problem, dass ich nicht lösen konnte:
Ich habe zwei Excel-Dateien.
Jede Datei hat eine Tabelle mit einer Spalte, in denen ein Datum mit Uhrzeit (03.12.2020 11:11) hinterlegt sind. Aus der Datei_1 sollen alle aktuellen Datensätze Ab Spalte F in Date_2 übertragen werden.
Aktuell kann alle Datensätze mit folgendem Code von Datei_1 in Datei_2 übertragen. Jedoch werden alle Datensätze übertragen. Ich möchte nur die aktuellen Datensätze die aktueller sind als der erste Datensatz in Datei_2.
Über meinen Code kann Datei_2 Datei_1 über ein Dialogfenster die Datensätze kopieren.
Die neuen Datensätze aus Datei_1 sollen dann eine neue Zeile sortiert mit dem aktuellen Datum (absteigend) hinzugefügt werden.
Hier ein kleines Beispiel wie es aussehen soll:
Vorher:
Datei_1:
A B C
Name Alter 03.12.2020 11:11
Name Alter 01.12.2020 11:00
Name Alter 01.12.2020 10:00
Datei_2:
F G H
Name Alter 01.12.2020 10:00
Name Alter 30.11.2020 09:00
Name Alter 30.11.2020 08:11
Nachher:
Datei_1:
A B C
Name Alter 03.12.2020 11:11
Name Alter 01.12.2020 11:00
Name Alter 01.12.2020 10:00
Datei_2:
F G H
Name Alter 03.12.2020 11:11
Name Alter 01.12.2020 11:00
Name Alter 01.12.2020 10:00
Name Alter 30.11.2020 09:00
Name Alter 30.11.2020 08:11
Anbei mein Code:
Option Explicit
Sub OeffnenDialog_mit_Pfadvorgabe()
'** Anzeige des Öffnen-Dialogfensters mit voreingestelltem Pfad
'** Dimensionierung der Variablen
Dim lshThis As Worksheet, lshOther As Worksheet
Dim wb As Workbook
Dim lngZ As Long
Dim strFileName
Dim strFilter As String
'** Dateifilter definieren
strFilter = "Excel-Dateien(*.xl*), *.xl*"
'** Laufwerk und Pfad definieren, welcher geöffnet werden soll
ChDrive "C"
ChDir "C:\Projekt"
'** Den im Dialogfeld gewählten Namen auslesen
strFileName = Application.GetOpenFilename(strFilter)
'** Prüfen, ob eine gültige Datei ausgewählt wurde
If strFileName = False Then Exit Sub
'** Gewählte Datei öffnen
Set wb = Workbooks.Open(strFileName)
'**Erste Registerkarte wird ausgelesen und in die erste Registerkarte abgelegt
Set lshThis = ThisWorkbook.Sheets(1)
Set lshOther = ActiveWorkbook.Sheets(1)
'**Inhalt der Zellen A1: bis O500 wird kopiert und in F1 eingefügt
lshOther.Range("A1:O500").Copy lshThis.Range("F1")
ActiveWorkbook.Close False
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Übertragung von aktuellen Datensätzen
03.12.2020 20:39:44
aktuellen
Hallo Matthias,
Hui. Schwer zu verstehen.
Kurz:
Du nimmst das neueste Datum aus Liste 2,
nimmst alles aus der Liste 1, was neuer ist,
fügst an der Liste 2,
sortiere Liste 2,
Dim Wq As Worksheet 'Quelle
Dim Wz As Worksheet 'Ziel
Sub Uebertrage()
Dim Val, Z
Set Wq = Workbooks("blabla").Worksheets("Tab1")
Set Wz = Workbooks("blup").Worksheets("Tab2")
Val = Application.WorksheetFunction.Max(Wz.Range(Wz.Range("F2"), Wz.Range("F10000").End( _
xlUp)))
Sortieren Wq, "A:C", "C", xlAscending
For Each Z In Wq.Intersect(Range("C:C"), Wq.UsedRange).Cells
If Z >= Val Then Exit For
Next
If Z 
Ungetestet.
Viel Erfolg
Yal
Anzeige
AW: Übertragung von aktuellen Datensätzen
03.12.2020 21:10:14
aktuellen
Hallo Yal,
genau ich möchte die neuen Datensätze von Liste_1 in Liste_2 kopieren ohne die vorhandenen Werte erneut zu kopieren.
Erstmal vielen Dank für die schnelle Antwort.
Ich kriege beim Intersect eine Fehlermeldung, dass die Methode oder das Datenobjekt nicht gefunden wurde.
ich meine diese Stelle:
For Each Z In Wq.Intersect(Range("C:C")
Gruß
Matthias
AW: Übertragung von aktuellen Datensätzen
03.12.2020 22:47:59
aktuellen
Hallo Matthias,
es geht dabei um den Bereich zu behandeln zu begrenzen. Es gibt verschieden Wege dazu.
Probiere
    For Each Z In Wq.Range(Wq.Range("C1"), Wq.Range("C10000").End(xlUp)).Cells
In der Function Sortieren könntest Du ein ähnliches Problem haben.
Aber jetzt weißt Du, wie das geht ;-)
VG
Yal
Anzeige
AW: Übertragung von aktuellen Datensätzen
03.12.2020 23:22:21
aktuellen
Hallo Yal,
magst du mir verraten wie ich den Code anpassen muss? Ich habe es im ersten Part des Codes geschafft aber ich habe keine Ahnung wie ich das im Sortieren Sub machen soll. Ich kriege noch Fehlermeldungen und weiß einfach nicht wie ich das anpassen muss. Kenne die Befehle leider nicht :/
VG
Matthias
AW: Übertragung von aktuellen Datensätzen
04.12.2020 00:05:36
aktuellen
Hallo Matthias,
mein Fehler. Ich teste nciht alle Vorschlag, weil ich sonst immer das komplett nachbauen müsste.
in der Zeile
    .SortFields.Add Key:=W.Intersect(W.Range(Spalten), W.UsedRange), _

mimm den W. vor Intersect weg. Also:
    .SortFields.Add Key:=Intersect(W.Range(Spalten), W.UsedRange), _

https://docs.microsoft.com/en-us/office/vba/api/excel.application.intersect
Viel Erfolg
Yal
Anzeige
AW: Übertragung von aktuellen Datensätzen
04.12.2020 09:03:37
aktuellen
Hallo Yal,
danke für den Tipp, leider klappt es nicht :/
AW: Übertragung von aktuellen Datensätzen
04.12.2020 09:15:12
aktuellen
Hallo Matthias,
versuche:
Dim Wq As Worksheet 'Quelle
Dim Wz As Worksheet 'Ziel
Sub Uebertrage()
Dim Val, Z
Set Wq = Workbooks("blabla").Worksheets("Tab1")
Set Wz = Workbooks("blup").Worksheets("Tab2")
Val = Application.WorksheetFunction.Max(Wz.Range(Wz.Range("F2"), Wz.Range("F10000").End( _
xlUp)))
Sortieren Wq, "A1:C100", "C1", xlAscending
For Each Z In Wq.Range(Wq.Range("C1"), Wq.Range("C10000").End(xlUp)).Cells
If Z >= Val Then Exit For
Next
If Z 
Wenn es nicht funktioniert, lasse die Sortierung unter Makro-Recorder laufen je Bereich und erzeuge 2 Sortierungsfnktionen, die Du einzel im Sub Uebertragen je abrufen kannst.
VG
Yal
Anzeige
AW: Übertragung von aktuellen Datensätzen
04.12.2020 09:39:52
aktuellen
Hallo Yal,
er gibt den Fehler, dass der Index außerhalb des gütigen Bereichs sei.
Beste Grüße
AW: Übertragung von aktuellen Datensätzen
04.12.2020 10:55:17
aktuellen
Hallo Matthias,
Du glücklicher. Ich habe doch das gesamt nachgebaut... und ziemlich viel Mist entsorgt.
Dim Wq As Worksheet 'Quelle
Dim Wz As Worksheet 'Ziel
Sub Uebertrage()
Dim Z
Set Wq = Workbooks("Mappe2").Worksheets("Neu")
Set Wz = Workbooks("Mappe2").Worksheets("Speicher")
Sortieren Wq, "A1:C1000", "C1", xlAscending
Sortieren Wz, "F1:H1000", "H1", xlDescending
For Each Z In Wq.Range(Wq.Range("C1"), Wq.Range("C10000").End(xlUp)).Cells
If Z >= Wz.Range("H1") Then Exit For
Next
If Z 
getestet.
Yal
Anzeige
AW: Übertragung von aktuellen Datensätzen
04.12.2020 12:37:33
aktuellen
Hallo Yal,
danke dir das klappt aktuell gut. An welcher Stelle muss ich meinen Code mit dem Dialogfeld einfügen, damit er die Datei über das Dialogfeld sucht?
Dann hätte ich eine weitere Frage:
Aktuell wird über den folgenden Befehl nur innerhalb einer Datei gesucht wie bekomme ich es, dass man die die Ergebnisse aus Liste_1 in Liste_2 kopiert?
Beste Grüße
Matthias
AW: Übertragung von aktuellen Datensätzen
04.12.2020 13:24:38
aktuellen
Hallo Matthias,
Da müsstest Du dich mit dem Coding auseinander setzen und entdecken, was wird wo von was gesteuert.
Genauso wir die Sortierung eine abgelegte Sub ist, die mit Parameter gesteuert wird, müsste die Sub "Uebertrage" Parameter annahmen und diese an richtige Stelle anwenden.
Ein Code zu lesen ist kein Hexenwerk und Wissen wird nur durch selber probieren richtig besfestigt.
Viel Erfolg
Yal
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige