Anzeige
Archiv - Navigation
828to832
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
828to832
828to832
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kopieren von einer anderen Excel Datei

Kopieren von einer anderen Excel Datei
18.12.2006 21:26:16
einer
Hallo,
ich sitze hier seit einiger Zeit und versuche ein Problem zu lösen. Ich möchte mittels eines Makro (ausgewählte) Daten aus einer anderen Datei UND allen 3 Tabellenblättern der Datei in die Datei kopieren in der ich mich befinde. Wenn es geht in die Datei in der mich befinde und in ein anderes Tabellenblatt, als das Makro ist.
Option Explicit

Sub Kopieren()
Dim Wieder as Integer
For Wieder = 1 To 300
If Cells(wieder, 1) = "DAT" Then _
Range (Cells(Wieder, 1), Cells(Wieder, 20)).copy _
Sheets("Blatt1").Cells(Sheets("Blatt1").Range("2000").End(xlUp).Offset(1, 0).Row, 1)
Next
End Sub

Mit dem Makro schaffe ich es lediglich Daten in ein anderes Tabellenblatt der gleichen Datei zu kopieren.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren von einer anderen Excel Datei
18.12.2006 23:13:43
einer
Hallo Andreas,
hier eine Lösungsmöglichkeit. Dabei wird im Makro der Datei-Öffnen-Dialog angezeigt, um die Datei mit den Daten zu öffnen.
Den Namen der Zieltabelle muss du ggf. noch anpassen.
Gruss
Franz

Option Explicit
Sub Kopieren()
Dim wbAktiv As Workbook, wbDatei As Workbook, Datei
Dim wksZiel As Worksheet, wksDatei As Worksheet
Dim Wieder As Integer, I As Integer
Set wbAktiv = ActiveWorkbook
Set wksZiel = wbAktiv.Worksheets("Tabelle1")
Datei = Application.Dialogs(xlDialogOpen).Show
If Datei = False Then Exit Sub
Set wbDatei = ActiveWorkbook
For I = 1 To 3
Set wksDatei = wbDatei.Worksheets(I)
With wksDatei
For Wieder = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(Wieder, 1) = "DAT" Then _
.Range(.Cells(Wieder, 1), .Cells(Wieder, 20)).Copy _
wksZiel.Cells(wksZiel.Range("2000").End(xlUp).Offset(1, 0).Row, 1)
Next
End With
Next
wbDatei.Close
End Sub

Anzeige
AW: Kopieren von einer anderen Excel Datei
18.12.2006 23:16:19
einer
Hallo Andreas.
probier mal
Option Explicit
Sub Kopieren()
Dim Wieder As Long
Dim wsQ As Worksheet, lngZ As Long
With Sheets("Blatt1")
lngZ = .Cells(Rows.Count, 1).End(xlUp).Row
For Each wsQ In Workbooks("Leute.xls").Worksheets ' Quellmappe anpassen - muss offen sein
For Wieder = 1 To 300
If wsQ.Cells(Wieder, 1) = "DAT" Then
lngZ = lngZ + 1
Range(wsQ.Cells(Wieder, 1), wsQ.Cells(Wieder, 20)).Copy .Cells(lngZ, 1)
End If
Next Wieder
Next wsQ
End With
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Kopieren von einer anderen Excel Datei
19.12.2006 21:44:11
einer
Danke euch beiden,
der Vorschlag von Erich klappt sehr gut. Bei dem anderen zeigt er mir eine Fehlermeldung für
If .Cells(Wieder, 1) = "DAT" Then _
.Range(.Cells(Wieder, 1), .Cells(Wieder, 20)).Copy _
wksZiel.Cells(wksZiel.Range("2000").End(xlUp).Offset(1, 0).Row, 1)
an.
Ist es eigentlich möglich das ich vorher manuell den zu suchenden Datensatz eingebe, so dass ich zB "DAT" suchen, kopieren und speichern kann und dann "DAZ" eingebe und wieder das gleiche mache, ohne es im Makro zu verändern?
Anzeige
AW: Kopieren von einer anderen Excel Datei
19.12.2006 22:16:23
einer
Hallo Andreas,
danke für deine Rückmeldung!
So ganz habe ich deinen Wunsch nicht verstanden. Wo willst du "DAZ" eingeben?
Ich bin mal von Zelle A5 auf Blatt1 ausgegangen - das kannst du ja ändern, wenn es nicht passt.
Nach dem Wert (z. B. DAT oder DAZ) der Zelle wird jetzt gesucht:
Option Explicit
Sub Kopieren()
Dim Wieder As Long
Dim wsQ As Worksheet, lngZ As Long, strTxt as string
With Sheets("Blatt1")
strTxt = .Range("A5")                                  ' evtl. anpassen
lngZ = .Cells(Rows.Count, 1).End(xlUp).Row
For Each wsQ In Workbooks("Quellmappe.xls").Worksheets ' Quellmappe anpassen - muss offen sein
For Wieder = 1 To 300
If wsQ.Cells(Wieder, 1) = strTxt Then
lngZ = lngZ + 1
Range(wsQ.Cells(Wieder, 1), wsQ.Cells(Wieder, 20)).Copy .Cells(lngZ, 1)
End If
Next Wieder
Next wsQ
End With
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Kopieren von einer anderen Excel Datei
21.12.2006 18:22:39
einer
Hallo Erich,
die Lösung kommt schon fast hin. Nur möchte ich 1) das Eingabefeld in einem Tabellenblatt haben, 2) in derselben Datei möchte ich die Daten in ein ANDERES Tabellenblatt laden - 3) welche ich aus einer einer anderen Datei beziehe.
Das bedeutet, Punkt 2 u. 3 sind super gelöst, nur habe ich zur Zeit das Eingabefeld auf dem gleichen Tabellenblatt wie die Daten.
Grüße Andreas
AW: Kopieren von einer anderen Excel Datei
21.12.2006 18:55:53
einer
Hallo Andreas,
dann so:
Sub Kopieren()
Dim Wieder As Long
Dim wsQ As Worksheet, lngZ As Long, strTxt As String
strTxt = Sheets("ein anderes Blatt").Range("A5")          ' anpassen
With Sheets("Blatt1")
lngZ = .Cells(Rows.Count, 1).End(xlUp).Row
For Each wsQ In Workbooks("Quellmappe.xls").Worksheets ' Quellmappe anpassen - muss offen sein
For Wieder = 1 To 300
If wsQ.Cells(Wieder, 1) = strTxt Then
lngZ = lngZ + 1
Range(wsQ.Cells(Wieder, 1), wsQ.Cells(Wieder, 20)).Copy .Cells(lngZ, 1)
End If
Next Wieder
Next wsQ
End With
End Sub
Rückmeldung wäre nett! - Erich aus Kamp-Lintfort wünscht euch schöne Feiertage!
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige