Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1728to1732
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
Inhaltsverzeichnis

Daten von einem Excel datei in die andere Excel Datei kopieren

Daten von einem Excel datei in die andere Excel Datei kopieren
13.12.2019 18:01:58
einem
Hallo zusammen,
ich finde hier immer gute Lösungen deswegen brauche ich wieder eure Hilfe.
1. Schritt: Aktuelle Werte in Blatt "Auswertung_EF" von Spalte A4 bis CJ der Exceldatei mit dem Name "Ausblick" löschen.
2. Shritt:
Ich habe eine Excel Datei die "Auswertung_Ge" heisst. Diese Datei ist xlsm. I dieser Datei befindet sich ein Blatt mit dem Name "Auswertung". Makro soll die Werte von A2 bis CJ kopieren.
3. Schritt:
Wenn er kopiert hat, dann muss er diese werte in Blatt "Auswertung_EF" von Spalte A4 bis CJ der Exceldatei mit dem Name "Ausblick". Die Werte müssen von Formel erkannt werden. (d.h. man muss nicht extra Text in spalte durchführen).
Das wäre sehr nett wenn jemand mir mit einer Code dabei helfen kann.
Danke schön im Voraus.
Robert

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
17.12.2019 13:45:08
einem
Hallo Robert,
die gewünschten Aktionen kannst du mit dem Makrorekorder aufzeichnen.
Falls die letzte zu löschende bzw. zu kopierende Zeile variable ist, dann muss man später im Makro vor dem Löschen/Kopieren in dem jeweiligen Blatt die letzte Zeile ermitteln und in dem zu löschenden/kopierende Range einbauen.
Starte mit dem Aufzeichnen des Makros wenn Datei "Auswertung_Ge.xlsm" die aktive Arbeitsmape ist und speichere auch das Makro in dieser Datei.
Dann Schritt 1 ausführen - dabei in A4 bis CJ von Blatt "Ausblick" nur die Inhalte löschen.
Dann Schritt 2 ausführen - Kopieren Range A4 bis CJ in Blatt "Auswertung"
Dann Schritt 3 - vor dem Einfügen der Kopierten Werte nur die Zelle A4 selektieren - ggf. nur Werte und Formate einfügen.
Die Werte müssen von Formel erkannt werden. (d.h. man muss nicht extra Text in spalte durchführen).
Makro-Aufzeichnung beenden.
Im Anschluss kannst du dann versuchen das aufgezeichnete Makro noch etwas zu optimieren.
Ich hab nicht verstanden was du damit meinst.
LG
Franz
Makro wie ich es etwa programmieren würde:
Sub Copy_A4_CJ()
Dim wkbQ As Workbook, wksQ As Worksheet
Dim wkbZ As Workbook, wksZ As Worksheet
Dim lngZeile As Long
Set wkbQ = Application.Workbooks("Auswertung_Ge.xlsm") 'Name ggf. anpassen
'oder
Set wkbQ = ThisWorkbook
Set wksQ = wkbQ.Worksheets("Auswertung")
Set wkbZ = Application.Workbooks("Auswertung_EF.xlsx") 'Name ggf. anpassen
Set wksZ = wkbZ.Worksheets("Ausblick")
'Inhalte in "Ausblick" löschen
With wksZ
lngZeile = .UsedRange.Row + .UsedRange.Rows.Count - 1
If lngZeile >= 4 Then
.Range("A4:CJ" & lngZeile).ClearContents
End If
End With
'Inhalte in "Auswertung" kopieren
With wksQ
lngZeile = .UsedRange.Row + .UsedRange.Rows.Count - 1
If lngZeile >= 4 Then
.Range("A4:CJ" & lngZeile).Copy
Else
MsgBox "es gibt nichts zu kopieren"
Exit Sub
End If
End With
'Inhalte in "Ausblick" einfügen
With wksZ
.Range("A4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats 'nur Werte und  _
Zellformate
'oder
.Range("A4").PasteSpecial Paste:=xlPasteAll 'alles
End With
Application.CutCopyMode = False
End Sub

Anzeige
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
17.12.2019 14:04:39
einem
Hey vieleeeennnn Dank...hat ja super funktioniert...Bist ein Held!!!
Könntest du bitte schauen, warum bei diesem Code diese Pastevalue nicht funktioniert? Also ich muss immer Text in Spalte durchführen, um die Werte von den Formeln zu erkennen...
Könntest du eine Lösung mir sagen? Oder hätten Sie eine andere Code, der die gleiche Funktion und Aufgabe erfüllt? Wäre mega nett...
Option Explicit
Sub GetAllUpdates()
Dim lLastRow As Long
Dim wkbOld As Workbook
Dim wkbNew As Workbook
Dim intCalculation As Integer
Const Abfrage_Export_DE As String = "R:\8D_Evaluation\BMW_QMT_8D_MANAGEMENT_PROJECT\SERIE_8D_MANAGEMENT\01_BERICHTSWESEN\02_AUSWERTUNG_REPORTING\02_AUSWERTUNG\Abfrage_Export_DE.xlsx"
Const Abfrage_Export_EN As String = "R:\8D_Evaluation\BMW_QMT_8D_MANAGEMENT_PROJECT\SERIE_8D_MANAGEMENT\01_BERICHTSWESEN\02_AUSWERTUNG_REPORTING\02_AUSWERTUNG\Abfrage_Export_EN.xlsx"
Application.ScreenUpdating = False
Application.EnableEvents = False
intCalculation = Application.Calculation
Application.Calculation = xlManual
Set wkbOld = ActiveWorkbook
Application.StatusBar = "delete old data"
With wkbOld.Sheets("Abfrage_Export_GE")
lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
If lLastRow > 5 Then .Range("A2:AT" & lLastRow).ClearContents
End With
Application.StatusBar = "check if worksheet in this file does exist"
If WorksheetExists("Abfrage_Export_GE") Then
Sheets("Abfrage_Export_GE").Activate
Else
Application.StatusBar = "create missing worksheet"
Sheets.Add
ActiveSheet.Name = " Abfrage_Export_GE"
Sheets("Abfrage_Export_GE").Activate
End If
Application.StatusBar = "check if workbook " & Abfrage_Export_DE & " does exist, and open it"
If WkbExists(Abfrage_Export_DE) = False Then
If Dir(Abfrage_Export_DE) = "" Then
Else
Workbooks.Open Abfrage_Export_DE, UpdateLinks:=False
End If
Else
Workbooks(Abfrage_Export_DE).Activate
End If
Application.StatusBar = "check if worksheet in external file does exist"
Set wkbNew = ActiveWorkbook
If Not WorksheetExists("Abfrage_Export_DE") Then
Else
Application.StatusBar = "copy data"
wkbNew.Sheets("Abfrage_Export_DE").Activate
lLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
wkbNew.ActiveSheet.Range("A2:AT" & lLastRow).Copy
Application.StatusBar = "paste data"
wkbOld.Sheets("Abfrage_Export_GE").Range("A2").PasteSpecial xlPasteValues
wkbOld.Sheets("Abfrage_Export_GE").Range("A2").PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End If
Application.StatusBar = "close file"
wkbNew.Close False
Application.StatusBar = "check if workbook " & Abfrage_Export_EN & " does exist, and open it"
If WkbExists(Abfrage_Export_EN) = False Then
If Dir(Abfrage_Export_EN) = "" Then
Else
Workbooks.Open Abfrage_Export_EN, UpdateLinks:=False
End If
Else
Workbooks(Abfrage_Export_EN).Activate
End If
Application.StatusBar = "check if worksheet in external file does exist"
Set wkbNew = ActiveWorkbook
If Not WorksheetExists("Abfrage_Export_EN") Then
Else
Application.StatusBar = "copy data"
wkbNew.Sheets("Abfrage_Export_EN").Activate
lLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
wkbNew.ActiveSheet.Range("A2:AT" & lLastRow).Copy
Application.StatusBar = "paste data"
lLastRow = wkbOld.Sheets("Abfrage_Export_GE").Cells(wkbOld.Sheets("Abfrage_Export_GE").Rows.Count, 1).End( _
xlUp).Row + 1
wkbOld.Sheets("Abfrage_Export_GE").Range("A" & lLastRow).PasteSpecial xlPasteValues
wkbOld.Sheets("Abfrage_Export_GE").Range("A" & lLastRow).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
End If
Application.StatusBar = "close file"
wkbNew.Close False
Application.StatusBar = "copy formulas"
With wkbOld.Sheets("Abfrage_Export_GE")
lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
If lLastRow > 2 Then
.Range("AW2:CJ2").Copy
.Range("AW3:CJ" & lLastRow).PasteSpecial
Application.CutCopyMode = False
End If
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlAutomatic
End Sub

Private Function WkbExists(sFile As String) As Boolean
Dim wkb As Object
On Error Resume Next
Set wkb = Workbooks(sFile)
If Not wkb Is Nothing Then
WkbExists = True
End If
On Error GoTo 0
End Function


Public Function WorksheetExists(ByVal WorksheetName As String) As Boolean
On Error Resume Next
WorksheetExists = (Sheets(WorksheetName).Name  "")
On Error GoTo 0
End Function

Anzeige
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 10:25:37
einem
Hallo Robert,
die Ursache liegt wahrscheinlich schon in den beiden Export-Dateien aus denen du die Daten kopierst.
Evtl. stehen dort die Daten alle in den Zellen in Spalte A.
Wenn das der Fall ist, dann muss du die Daten in den Zieltabellen leider via "Text in Spalten" auf die Spalten verteilen.
Das kannst du aber auch in dein Makro integrieren.
Da die Quellen ohne Speichern wieder geschlossen werden kannst du die Aufteilung ggf. auch in den Quelltabellenblättern machen und danach erst kopieren.
LG
Franz
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 11:13:31
einem
Hallo,
danke schön für die Antwort...
da ich ganz schlecht in Makro bin, hättest du bitte vielleicht eine idee wie und wo Text in Spalte in Makro schreiben kann? Also für Spalte A bis AT sollte Text in Spalte via Makro sein.
Das wäre sehr nett..
Anzeige
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 11:40:23
einem
Hallo RO
Du behandelst das selbe Theam in 2 unterschiedlichen Beiträgen
https://www.herber.de/forum/messages/1729402.html
Lade doch Bitte die Datei
R:\01_BERICHTSWESEN\02_AUSWERTUNG_REPORTING\02_AUSWERTUNG\Abfrage_Export_DE.xlsx
einmal hoch (Deine Makro Datei habe ich bereits), dann kann ich Dir wahrscheinlich weiterhelfen.
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 13:21:53
einem
https://www.herber.de/bbs/user/133846.xlsb
hier die Datei..habe in xlsb gewandelt, wegen Größe der Datei.
Von dieser Datei kommen die Werte. Text in spalte sollte für die Spalte A bis AT der Zieldatei oder A bis AT der Quelledatei (Abfrage_Export_DE.xlsb) druchführen, ohne das man die Quelledatei öffnen kann.
Kann diese Code irgendwie integriert werden für die Spalte A-AT vielleicht...
Sub LoopTextiSpalten()
Dim WS_Count As Integer
Dim Yexp As Integer
' Tabellenbl?tter auslesen in DB Export
WS_Count = ActiveWorkbook.Worksheets.Count
' Begin the loop.
For Yexp = 1 To WS_Count
Sheets(Yexp).Select
Call TextiSpalten
Next Yexp
End Sub

Sub TextiSpalten()
Spmax = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To Spmax
Columns(i).Select
Selection.TextToColumns Destination:=Cells(1, i), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Next i
Danke dir man..

Anzeige
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 13:33:56
einem
Hallo
Deine Beispieldatei ist bereits in Spalten formatiert!! Bitte schicke die Original Datei wie angefordert, in der die Daten in EINER Zelle stehen!
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 13:36:05
einem
Das ist die original datei... Sie wird von einem Online system heruntergeladen und so gespeichert... Also von dieser Datei kommen die Werte..
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 13:47:04
einem
Hallo
Wieso brauchst Du dann Text in Spalten? Es ist ja schon alles in Spalten aufgeteilt.
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 13:52:37
einem
Weil die hinterlegbten Formel in Spalte Ab Spalte AT die eingefügten Werten von A bis At nicht erkennen. Ich muss immer manuell Text in Spalte durchführen. Das wollte ich per makro machen für berech A2 bis AT.
Gibt es eine Code dazu? Und wie kann man es in die vorherigen code einfügen?
Anzeige
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 14:14:03
einem
Hallo
Schön langsam kommen wir dem Problem immer näher. Du verwendest TextInSpalten um Spalten zu formatieren deren numerische Werte aber als Text vorliegen. Derzeit sehe ich das Problem nur in Spalte "I" und Spalte "AH". Stimmt das?
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 14:20:18
einem
Ja genau...so ist das problem...
Alle Spalten wo datum Datum einefügt ist und spalte I sowie AH.
Für diese muss ich immer manuell Text in Spalte durchführen.
Gibt es eine Lösung? Wäre unglaublich nett wenn das gelöst wird...
Danke für deine Bemühung im Voraus!
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 14:48:00
einem
Hallo
Habs nun eingefügt. Die Liste der Spalten steht in der neuen Sub, kannst Du einfach erweitern.
https://www.herber.de/bbs/user/133847.xlsb
Anzeige
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 14:56:31
einem
Es hat funktionierttttt... Bist ein Held..
Noch etwas:
Könnte man in Code schreiben, dass die Werte in Spalte I und AH mit 2 nachkommastellen eingefügt werden müssen? Z.B ist 5 soll 5.0 sein...also wie und wo kann man es hier das noch einfügen?
Danke dir mehrmals :)
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 15:32:39
einem
Hallo
Wenn du nur die beiden Spalten umwandelst, einach so
Sub TextInSpalten(ws As Worksheet)

    Dim mySpalten As Variant
    Dim s As Variant

    mySpalten = Array("I", "AH")   ' ensprechend anpaasen 
    For Each s In mySpalten
        ws.Columns(s).TextToColumns Destination:=ws.Range(s & "1"), DataType:=xlDelimited, _
                                    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
                                    Semicolon:=False, Comma:=False, Space:=False, Other:=False, _
                                    FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
        ws.Columns(s).NumberFormat = "0.00"
    Next
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Anzeige
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 15:38:45
einem
Superrrrr....hat super geklapptttt....danke dir und schöne Weihnachtszeit.
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 15:57:15
einem
Hallo Ro
Auch Dir eine schöne Weihnachtszeit, war eine schwere Geburt :-)
Peter
AW: Daten von einem Excel datei in die andere Excel Datei kopieren
18.12.2019 13:26:44
einem

Sub LoopTextiSpalten()
Dim WS_Count As Integer
Dim Yexp As Integer
' Tabellenbl?tter auslesen in DB Export
WS_Count = ActiveWorkbook.Worksheets.Count
' Begin the loop.
For Yexp = 1 To WS_Count
Sheets(Yexp).Select
Call TextiSpalten
Next Yexp
End Sub

Sub TextiSpalten()
Spmax = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To Spmax
Columns(i).Select
Selection.TextToColumns Destination:=Cells(1, i), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Next i
Wie kann man, diese code hier integrieren? Das wäre nett.
Danke die!

Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige