PDA

Vollständige Version anzeigen : Zeilen importieren


slice1
23.02.2008, 10:00
Hallo,

bekomme tagtäglich eine Excel-Datei mit mehreren Spalten, in der letzten Zeile stehen die Summen aus den einzelnen Spalten. Die Excel-Datei erhalte ich mit der Dateikonvention des Tages.
Jetzt will ich in einer neu erstellten Excel-Datei immer die Summe der einzelnen Tage importieren. Evtl. nach Aufruf eines Buttons, in dem ich die Datei auswähle und die letzte Zeile automatisch in die neue Datei importierte.
Beim nächsten Aufruf des nächsten Tagesdatei sollen die Daten in die nächste freie Zeile der neuen Datei importiert werden usw.

Geht sowas?

Gruß
slice1

jinx
23.02.2008, 12:24
<font size="2" face="Century Gothic">Moin, slice1,

aber klar doch - Stichworte für die Suche im Archiv sind GetOpenFilename und Cells(Rows.Count, 1).End(xlUp).Row, Vorgehen könnte z.B. wie folgt aussehen:

Sub slice1()
Dim varName As Variant
Dim wbOld As Workbook
Dim lngFirstFree As Long

lngFirstFree = Cells(Rows.Count, 1).End(xlUp).Row + 1
varName = Application.GetOpenFilename()
If varName <> False Then
Set wbOld = Workbooks.Open(varName)
ThisWorkbook.ActiveSheet.Cells(1, lngFirstFree).Value = _
wbOld.ActiveSheet.Range("F3").Value
wbOld.Close savechanges:=False
Set wbOld = Nothing
End If
End Sub</font>

rastrans
23.02.2008, 12:48
oder auch so
Sub ImportLetzteZeile()
Dim lngZeileSource As Long, lngZeileDestination As Long
Dim wsSource As Worksheet, wsDestination As Worksheet
Dim dlg As Dialog
Dim wbSource As Workbook

'Erste leere Zeile in der aktiven Mappe speichern
Set wsDestination = ActiveSheet
lngZeileDestination = wsDestination.Cells.SpecialCells(xlCellTypeLastCell).Row + 1

'Anzeige unterdrücken
Application.ScreenUpdating = False
'Neue Datei öffnen
Set dlg = Application.Dialogs(xlDialogOpen)
dlg.Show

'Neues Workbook merken
Set wbSource = ActiveWorkbook
'Mappe im neuen Workbook
Set wsSource = ActiveSheet
'letzte Zeile in der neuen Datei der gewählen Mappe speichern
lngZeileSource = wsSource.Cells.SpecialCells(xlCellTypeLastCell).Row

'Inhalt der Zeile kopieren
wsSource.Rows(lngZeileSource).Copy
'und in die Ziel-Mappe kopieren
wsDestination.Rows(lngZeileDestination + 1).Insert

'Neue Datei schliessen und meldungen unterdrücken
Application.DisplayAlerts = False
wbSource.Close SaveChanges:=False
Application.DisplayAlerts = True
Application.ScreenUpdating = True

wsDestination = Nothing
dlg = Nothing
wbSource = Nothing
wsSource = Nothing
End Sub

Wenn ich mich schon daran gemacht habe, dann will ich den Code auch posten. Auch wenn hier schon jemand schneller war...:rolleyes:

Grüße
rastrans