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

zwei exceltabellen zusammenfügen

zwei exceltabellen zusammenfügen
22.10.2007 13:41:40
Reptil
hallo zusammen
ich habe zwei exceltabellen, die vom aufbau her identisch sind. nun möchte ich die eine per makro unter die andere kopieren. gedacht hatte ich das so:

Workbooks.Open dateiname2
Visible = True
ActiveWorkbook.Sheets("Tabelle1").Range("A30", Range("M65536")).End(xlUp).Select
Selection.Copy
Workbooks.Open dateiname
Visible = True
ActiveWorkbook.Sheets("Tabelle1").Select
LoLetzte = Cells(Rows.Count, 12).End(xlUp).Row + 1
Cells(LoLetzte, 1).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Quit


leider wird so nur die zelle A1 kopiert. meiner vermutung nach hängt das mit dem End(xlUp) zusammen, aber ohne das makiert er ja alles von zeile 30 ab, was dann beim einfügen natürlich wieder probleme gibt.
"ActiveWorkbook", "Workbooks.Open" usw brauche ich, da ich das ganze später von access aus steuern möchte. der fehler liegt hier aber ganz klar am excel code.
grüße
Reptil
ps: ich weiß, auf select kann in 99,98257% (ca.) der fälle verzichtet werden, aber ich wusste nicht, wie ich es sonst lösen sollte.... änderungswünsche dahingegend sind natürlich auch wilkommen ;-)

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zwei exceltabellen zusammenfügen
22.10.2007 14:17:00
Reptil
was ich vergaß zu sagen... die tabellenlänge ist variabel, wäre ja sonst auch langweilig -.-
die maximalen 65536 zeilen sind aber noch lange nicht in sicht

Das Ganze mal ohne SELECT, aber mit Objekten
22.10.2007 14:18:00
NoNet
Hallo Reptil,
teste doch mal diese Alternative :
Sub Bereich_kopieren()
    Dim wb1 As Workbook, wb2 As Workbook
    Dim RngLtzZelle1 As Range, RngLtzZelle2 As Range, Dateiname As String
    Dateiname = "C:\Temp\Kopie1.xls" 'Dateinamen bitte anpassen !
    Set wb1 = ActiveWorkbook
    Set wb2 = Workbooks.Open(Dateiname)
    Set RngLtzZelle1 = wb1.Sheets("Tabelle1").Cells(Rows.Count, "M").End(xlUp)
    Set RngLtzZelle2 = wb2.Sheets("Tabelle1").Cells(Rows.Count, "L").End(xlUp)
    Range(wb1.Sheets("Tabelle1").[A30], RngLtzZelle1).Copy _
        wb2.Sheets("Tabelle1").Cells(RngLtzZelle2.Offset(1).Row, "A")
    wb2.Save
    Set wb1 = Nothing
    Set wb2 = Nothing
    Set RngLtzZelle1 = Nothing
    Set RngLtzZelle2 = Nothing
End Sub
Der Dateiname "Kopie1.xls" ist die Datei, in die der Inhalt hineinkopiert wird. Bitte verwende zum Testen zunächst eine KOPIE Deiner Datei und passe den Namen entsprechend an !
Gruß, NoNet

Anzeige
AW: Das Ganze mal ohne SELECT, aber mit Objekten
22.10.2007 14:46:56
Reptil
hallo NoNet
erstmal danke für die hilfe : )
hm, das will irgendwie nicht so ganz : /
ich habe den code jetzt mal so angepasst:

Dim Dateiname As String
Dim dateiname2 As String
Dim wb1 As Workbook, wb2 As Workbook
Dim RngLtzZelle1 As Range, RngLtzZelle2 As Range
Set wb1 = dateiname2
Set wb2 = Workbooks.Open(Dateiname)
Set RngLtzZelle1 = wb1.Sheets("Tabelle1").Cells(Rows.Count, "M").End(xlUp)
Set RngLtzZelle2 = wb2.Sheets("Tabelle1").Cells(Rows.Count, "L").End(xlUp)
Range(wb1.Sheets("Tabelle1").[A30], RngLtzZelle1).Copy _
wb2.Sheets("Tabelle1").Cells(RngLtzZelle2.Offset(1).Row, "A")


als fehler kommt


Laufzeitfehler '91':
Objektvariable oder With-Blockvariable nicht festgelegt


als fehlerzeile erscheint "Set wb1 = dateiname2"

Anzeige
noch offen OT
22.10.2007 15:02:51
Reptil
...-.-...

Bananen in eine Zitruspresse ?
22.10.2007 15:46:18
NoNet
Hallo Reptil,
Du versuchst, Äpfel mit Birnen zu vergleichen (besser: eine Banane mit einer Zitruspresse auszuquetschen) :
Set wb1 = dateiname2 kann ja nicht funktionieren, da :
- Dateiname2 noch keinen Inhalt besitzt
- wb1 ein WORKBOOK ist, während Dateiname2 nur ein STRING ist !
Probiere es mal so :

Dim Dateiname1 As String
Dim Dateiname2 As String
Dim wb1 As Workbook, wb2 As Workbook
Dim RngLtzZelle1 As Range, RngLtzZelle2 As Range
Dateiname1="Bananen.xls"
Dateiname2="Zitronenpresse.xls"
Set wb1 = Workbooks(Dateiname1) 'muss bereits geöffnet sein !
Set wb2 = Workbooks.Open(Dateiname2) 'Wird hier geöffnet


Gruß, NoNet

Anzeige
AW: zwei exceltabellen zusammenfügen
22.10.2007 14:21:00
Tino
Hallo,
versuche es mal so

Workbooks.Open dateiname2
Visible = True
ActiveWorkbook.Sheets("Tabelle1").Range(Range("A30:M65536"), Range("A30:M65536").End(xlUp)). _
Copy
Workbooks.Open dateiname
Visible = True
ActiveWorkbook.Sheets("Tabelle1").Select
LoLetzte = Cells(Rows.Count, 12).End(xlUp).Row + 1
Cells(LoLetzte, 1).PasteSpecial
ActiveWorkbook.Save
Quit


Gruss
Tino

AW: zwei exceltabellen zusammenfügen
22.10.2007 14:53:05
Reptil
Hallo Tino
auch dir danke für deine hilfe. leider klappt auch das nicht so ganz.
er bringt einen fehler an der stelle LoLetzte = Cells(Rows.Count, 12).End(xlUp).Row + 1
allerdings kommt es hier darauf an, ob ein punkt vor der stelle steht oder nciht. der punkt ist notwendig, wenn ich den code von access aus bedienen möchte
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige