Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

externe .xls einlesen

Forumthread: externe .xls einlesen

externe .xls einlesen
08.02.2009 19:03:00
Horst
Hallo Excel Freaks,
Ich hätte folgendes Problem: Die letzte Zeile einer Excel-Datei (Tabelle1) soll jeweils um die erste Zeile einer externen .xls erweitert und gespeichert werden, sodass täglich eine Zeile zum Datensatz der Tabelle1 hinzu kommt.
Beispiel: Die letzte Zeile der Tabelle1 enthält in der Spalte A das Datum 07.02.09. Das Datum der externen Projekt.xls steht ebenfalls in Spalte A. Die VBA-Protedur soll nun das Datum der Tabelle1 mit jenem der Projekt.xls vergleichen und wenn das Datum der Projekt.xls aktueller als jenes der Tabelle1 ist, die entsprechenden Datensätze in Tabelle 1 ergänzen.
In der ersten Zeile der Projekt.xls steht z.B. der 08.02.09. In Tabelle1 sollen jetzt (als letzte Zeile) das aktuelle Datum der Projekt.xls sowie die in deren ersten Zeile im Bereich O:AL enthaltenen Daten in den Bereich A:Y der Tabelle 1 geschrieben werden.
Wie lässt sich das in VBA elegant lösen?
Vorab besten Dank für Eure Vorschläge,
Horst
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: externe .xls einlesen
13.02.2009 12:55:00
UweD
Hallo
Was mir unlogisch erscheint:
in Tabell1 steht das Datum in der letzten Zeile in Spalte A
Wenn jetzt dahin (in A bis Y) kopiert werden soll, ist ja dort danach kein Datum mehr drin.
Ich hab die Zielzelle jetzt mal in B gesetzt. Kannst du ja ändern.


Sub tt()
    On Error GoTo Fehler
    Dim TB1, TB2, Datei$, Pfad$
    Dim SP%, LR&
    Pfad = "C:\Temp\"
    Datei = "Projekt.xls"
    Application.ScreenUpdating = False
    Set TB1 = ActiveSheet 'Diese Datei
    Workbooks.Open Filename:=Pfad & Datei
    Set TB2 = ActiveSheet
    SP = 1 'Spalte A
    LR = TB1.Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
    If TB2.Range("A1") > TB1.Cells(LR, 1) Then
        TB2.Range("A1").Copy TB1.Cells(LR + 1, 1) 'Datum soll doch wieder in A stehen oder?
        TB2.Range("O1:AL1").Copy TB1.Cells(LR + 1, 2) 'deshalb Ziel ist Spalte B(=2)
    End If
    Workbooks(Datei).Close
    Err.Clear ' wegen unbekanntem Fehler in XL2007 notwendig
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
    Application.EnableEvents = True
    Application.DisplayAlerts = True
End Sub


Gruß UweD
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige