Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1048to1052
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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige