Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
908to912
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
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeile in andere Arbeitsmappe

Zeile in andere Arbeitsmappe
18.09.2007 18:15:38
Thomas
Hallo und guten Abend
Habe mich etwas verrannt und komme einfach nicht weiter.
Ich möchte die letzte; im Moment die „26 “ Zeile einer Tabelle in die nächste freie Zeile einer anderen Tabelle kopieren --> in eine andere Arbeitsmappe.
Das funktioniert auch, nur leider nicht in die nächste freie sondern ganau in dieselbe Zeile +1
Den Code hab ich mir zusammengesucht und der sollte so auch gehen ?

Sub ü2Seckel()
Dim wks
Dim iRow As Integer, iRowS As Integer
Dim sfile As String
Application.ScreenUpdating = False
sfile = ThisWorkbook.Path & "\alleGL1.xls"
If Dir(sfile) = "" Then
Beep
MsgBox "Testdatei wurde nicht gefunden!"
Exit Sub
End If
Set wks = ActiveSheet
Workbooks.Open Filename:=sfile
Worksheets("Tabelle1").Select
iRowS = wks.Cells(Rows.Count, 1).End(xlUp).Row
If IsEmpty(Range("A1")) Then
iRow = 1
Else
iRow = wks.Cells(Rows.Count, 1).End(xlUp).Row + 1
End If
wks.Rows(iRowS).copy Rows(iRow)
ActiveWorkbook.Close savechanges:=True
Application.ScreenUpdating = False
End Sub


leider fehlt mir etwas das Hintergrundwissen könntet Ihr mal drüberschaun?
Gruß Thomas B. aus P.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile in andere Arbeitsmappe
18.09.2007 23:39:00
fcs
Hallo Thomas,
deklariere die Objekte in deinem Code ordentlich, dann verlierst du auch den Überblick nicht so schnell.
Du berechnest iRow (die Zeile in der die Kopie in der Zieltabelle) mit der Ursprungstabelle.

iRow = wks.Cells(Rows.Count, 1).End(xlUp).Row + 1
ändere in
iRow = Cells(Rows.Count, 1).End(xlUp).Row + 1


Oder besser etwa in die nachfolgende Form mit kompletter Deklaration der Objekte.
Gruß
Franz


Sub ü2Seckel()
Dim wks As Worksheet, wksZiel As Worksheet, wbZiel As Workbook
Dim iRow As Integer, iRowS As Integer
Dim sfile As String
Application.ScreenUpdating = False
sfile = ThisWorkbook.Path & "\alleGL1.xls"
If Dir(sfile) = "" Then
Beep
MsgBox "Testdatei wurde nicht gefunden!"
Exit Sub
End If
Set wks = ActiveSheet
Set wbZiel = Workbooks.Open(FileName:=sfile)
Set wksZiel = wbZiel.Worksheets("Tabelle1")
wksZiel.Select
iRowS = wks.Cells(wks.Rows.Count, 1).End(xlUp).Row
If IsEmpty(Range("A1")) Then
iRow = 1
Else
iRow = wksZiel.Cells(wksZiel.Rows.Count, 1).End(xlUp).Row + 1
End If
wks.Rows(iRowS).Copy wksZiel.Rows(iRow)
wbZiel.Close savechanges:=True
Application.ScreenUpdating = False
End Sub


Anzeige
Zeile 4 in andere Arbeitsmappe
19.09.2007 07:39:52
Thomas
Danke für die Hilfe !
geht Super.
mein nächstes Problem wäre, wenn ich nicht die letzet sondern nur die Zeile 4 in die Zieltabelle haben möchte.
und dann nor noch die Kleinigkeit ; Zeile 4 aber ohne Werte aus A4 in Zieltabelle
Zum besseren Verständniss: ich muß 3 verschidene Zieltabellen mit den Werten bedienen.
Wie muß ich den Code abändern?
Gruß Thomas B. aus P.

AW: Zeile 4 in andere Arbeitsmappe
19.09.2007 11:45:09
fcs
Hallo Thomas,
dann schauts etwa wie folgt aus. Tabellennamen muss du ggf. anpassen oder auch durch die Zahlnummer der Tabelle (ohne Anführungszeichen!!) ersetzen
Gruß
Franz

Sub ü2Seckel()
Dim wks As Worksheet, wksZiel As Worksheet, wbZiel As Workbook
Dim iRow As Integer, iRowS As Integer
Dim sfile As String
Application.ScreenUpdating = False
sfile = ThisWorkbook.Path & "\alleGL1.xls"
If Dir(sfile) = "" Then
Beep
MsgBox "Testdatei wurde nicht gefunden!"
Exit Sub
End If
Set wks = ActiveSheet
Set wbZiel = Workbooks.Open(FileName:=sfile)
'Letzte Zeile in Tabelle1 kopieren
Set wksZiel = wbZiel.Worksheets("Tabelle1")
wksZiel.Select
iRowS = wks.Cells(wks.Rows.Count, 1).End(xlUp).Row
If IsEmpty(wksZeil.Range("A1")) Then
iRow = 1
Else
iRow = wksZiel.Cells(wksZiel.Rows.Count, 1).End(xlUp).Row + 1
End If
wks.Rows(iRowS).Copy wksZiel.Rows(iRow)
' Zeile 4 aus Quelle in letze Zeile Tabelle2 kopieren
Set wksZiel = wbZiel.Worksheets("Tabelle2")
iRowS = 4
If IsEmpty(wksZiel.Range("A1")) Then
iRow = 1
Else
iRow = wksZiel.Cells(wksZiel.Rows.Count, 1).End(xlUp).Row + 1
End If
wks.Rows(iRowS).Copy wksZiel.Rows(iRow)
' Zeile 4 ohne Spalte A (2) aus Quelle in letze Zeile Tabelle3 kopieren
Set wksZiel = wbZiel.Worksheets("Tabelle3")
iRowS = 4
If IsEmpty(wksZiel.Range("A1")) Then
iRow = 1
Else
iRow = wksZiel.Cells(wksZiel.Rows.Count, 1).End(xlUp).Row + 1
End If
With wks
.Range(.Cells(iRowS, 2), .Cells(iRowS, .Columns.Count).End(xlToLeft)).Copy _
Destination:=wksZiel.Cells(iRow, 1)
End With
Application.CutCopyMode = False
'Zieldatei speichern und schließen
wbZiel.Close savechanges:=True
Application.ScreenUpdating = False
End Sub


Anzeige
Danke: Zeile 4
19.09.2007 12:03:00
Thomas
Vielen Dank für Deine Hilfe !!
Es funktioniert einwandfrei.
nochmals Danke.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige