Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
980to984
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
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeile per Macro von anderer Mappe abholen

Zeile per Macro von anderer Mappe abholen
02.06.2008 13:34:00
anderer
Hallo,
Ich hab jetzt den halben Tag mit probieren verbracht, und bin nicht wirklich weiter gekommen, ich erhoffe mir daher Hilfe von extern...von euch.
Also zu meinem Problem:
Ich habe eine Excel-Datei (Mappe), welche sich auf Knopdruck (Button) aus verschiedenen anderen Mappen die letzte Zeile abholen soll, die Sie in einer bestimmten Tabelle vorfindet. Diese abgeholte Zeile sollte dann an eine ganz bestimmte Stelle hineingeschrieben (überschrieben) werden.
Also:
Datei1 = Ziel Schreibe in Zeile 5 die letzte Zeile aus Datei2; Schreibe in Zeile 7 die letzte Zeile aus Datei 3; Schreibe in Zeile 9 die letzte Zeile aus Datei 4
Datei2 = Quelle - Tabelle1
Datei3 = Quelle - Tabelle2
Datei4 = Quelle - Tabelle3
und so weiter
Datei 1 kann jeweils beim "syncronisieren" die Daten immer überschreiben.
Datei 2-4 sind nicht offen und liegen NICHT im selben Ordner
Da ich mich nicht mit Macros und VBA etc. auskenne und im Grunde nur versucht habe aus anderen Beiträgen was zu basteln....komm ich einfach nicht weiter.
Also könnt Ihr mir da mal eben helfen?
Danke
Der Tom

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile per Macro von anderer Mappe abholen
02.06.2008 14:17:29
anderer
Hallo Thomas,
als Ansatz mal ein Beispiel mit der 1. Datei. Namen, Nummern von dateien, Tabellen, Spalten muss du entsprechend anpassen.
Für die weiteren Dateien den Code-Block für die 1. Datei kopieren und anpassen.
Gruß
Franz

Sub DatenHolen()
Dim objWbZiel As Workbook, objWbQuelle As Workbook
Dim objWksZiel As Worksheet, objWksQuelle As Worksheet
Dim lngZeileQ As Long
Set objWbZiel = ActiveWorkbook
Set objWksZiel = objWbZiel.Worksheets("Tabelle1")
Application.ScreenUpdating = False
'Datei 1 schreibgeschützt öffnen und letzte Zeile übertragen
Set objWbQuelle = Workbooks.Open(Filename:="C:\Test\Datei2.xls", ReadOnly:=True)
Set objWksQuelle = objWbQuelle.Worksheets(1)
With objWksQuelle
'letztezeile in Spalte 1 (A) der Tabelle suchen
lngZeileQ = .Cells(.Rows.Count, 1).End(xlUp).Row
'Zellen mit Daten aus letzter Zeile kopieren
.Range(.Cells(lngZeileQ, 1), .Cells(lngZeileQ, .Columns.Count).End(xlToLeft)).Copy
'Daten in Zeile 5 einfügen
objWksZiel.Cells(5, 1).PasteSpecial Paste:=xlPasteValues
.Application.CutCopyMode = False
End With
'Quelle wieder schließen
objWbQuelle.Close savechanges:=False
'Datei 2 öffnen und letzte Zeile übertragen
'...usw.
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Zeile per Macro von anderer Mappe abholen
02.06.2008 14:36:10
anderer
Ok...funktioniert soweit...
Frage: Wie kann ich bei der Quelle angeben, welche Tabelle er nutzen soll um die letzte Zeile zu suchen?
Im Moment ist es so, dass die Datenquelle in der 1. Tabelle der Mappe zu finden ist, aber was ist, wenn die nicht in Tabelle1, sondern in Tabelle2 steht?
Kann ich die Tabelle genauer spezifizieren?
Bei der Ausgabe ist ja Tabelle1 benannt...
Der Tom

AW: Zeile per Macro von anderer Mappe abholen
02.06.2008 17:11:44
anderer
Da hab ich dann gleich noch eine 2 Frage,
'letztezeile in Spalte 1 (A) der Tabelle suchen
lngZeileQ = .Cells(.Rows.Count, 1).End(xlUp).Row
'Zellen mit Daten aus letzter Zeile kopieren
.Range(.Cells(lngZeileQ, 1), .Cells(lngZeileQ, .Columns.Count).End(xlToLeft)).Copy
'Daten in Zeile 5 einfügen
objWksZiel.Cells(5, 1).PasteSpecial Paste:=xlPasteValues
.Application.CutCopyMode = False
ist soweit klar. Gehe zur letzten Zeile und kopiere alles ab Spalte A....
Wie aber kann ich den zu kopierenden Bereich der letzten Zeile genauer definieren?
Wenn ich also nicht die ganze letzte Zeile kopiert haben möchte, sondern nur z.B. aus der letzten Zeile die Spalte B ? Mhh das blick ich nicht ganz...
Kann ich da noch einem Nachhilfe erhalten?
Gruß und Danke
Der Tom

Anzeige
AW: Zeile per Macro von anderer Mappe abholen
02.06.2008 17:37:03
anderer
Hallo Thomas,
die Quelle-Tabelle kannst du in der Zeile nach dem Öffnen der Datei festlegen. Im Moment steht dort die Nummer 1, d.h. die Tabelle im 1. Register der Datei. Hier kannst du auch den Namen des Blattes statt der Nummer angeben. Beispiele:
Set objWksQuelle = objWbQuelle.Worksheets(2)
Set objWksQuelle = objWbQuelle.Worksheets("Tabelle2")
Für das Einlesen von Teilen der letzten Zeile hab ich die unten ein paar Beispiele eingebaut.
Gruß
Franz

Sub DatenHolen()
Dim objWbZiel As Workbook, objWbQuelle As Workbook
Dim objWksZiel As Worksheet, objWksQuelle As Worksheet
Dim lngZeileQ As Long
Set objWbZiel = ActiveWorkbook
Set objWksZiel = objWbZiel.Worksheets("Tabelle1")
Application.ScreenUpdating = False
'Datei 1 schreibgeschützt öffnen und letzte Zeile übertragen
Set objWbQuelle = Workbooks.Open(Filename:="C:\Test\Datei2.xls", ReadOnly:=True)
Set objWksQuelle = objWbQuelle.Worksheets(1) '### hier ggf. die Nummer oder Name anpassen
With objWksQuelle
'letztezeile in Spalte 1 (A) der Tabelle suchen
lngZeileQ = .Cells(.Rows.Count, 1).End(xlUp).Row
'Zellen aus Bereich in letzter Zeile kopieren
' Alle Daten der Zeile
.Range(.Cells(lngZeileQ, 1), .Cells(lngZeileQ, .Columns.Count).End(xlToLeft)).Copy
'Daten aus Spalte 1  (A) bis 4 (D) kopieren
.Range(.Cells(lngZeileQ, 1), .Cells(lngZeileQ, 4)).Copy
'Daten aus Spalte 2  (B)
.Cells(lngZeileQ, 2).Copy
'Daten in Zeile 5 einfügen
objWksZiel.Cells(5, 1).PasteSpecial Paste:=xlPasteValues
.Application.CutCopyMode = False
End With
'Quelle wieder schließen
objWbQuelle.Close savechanges:=False
'Datei 2 öffnen und letzte Zeile übertragen
'...usw.
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Zeile per Macro von anderer Mappe abholen
03.06.2008 13:08:00
anderer
Perfekt! Na das funzt ja super....
also vielen Dank!
Der Tom

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige