Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1360to1364
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

Makro 2 excel Dateien nach Nummer zusammenkopieren

Makro 2 excel Dateien nach Nummer zusammenkopieren
13.05.2014 09:02:25
Chris
Hallo zusammen,
ich benötige eure Hilfe und zwar würde ich gern zwei Excel Dateien per Buttom zusammenkopieren und das nach der jeweiligen BestellNr.
Hier der Aufbau der Dateien
Datei1:
BestellNr Status Beschreibung
1001 2 ...
1002 2 ...
1005 3 ...
Datei2:
BestellNr Standort Wert
1001 St 1100
1002 Es 2000
1003 GP 500
Die Werte aus Datei2 sollen nur in Datei1 kopiert wederden wenn die BestellNr übereinstimmt
Es sollte dann so aussehen
BestellNr Status Beschreibung Standort Wert
1001 2 ... St 1100
1002 2 ... Es 2000
1005 3 ...
Wäre sehr dankbar für eure Hilfe
Gruß Chris

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro 2 excel Dateien nach Nummer zusammenkopieren
13.05.2014 09:29:07
Rudi
Hallo,
Sub kopieren()
Const sPfad As String = "c:\test\" 'anpassen
Const sFile As String = "Mappe2.xlsx" 'anpassen
Const sSheet As String = "Tabelle1" 'anpassen
Cells(1, 4) = "Standort"
Cells(1, 5) = "Wert"
With Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp))
.Offset(, 3).FormulaR1C1 = _
"=iferror(vlookup(rc[-3],'" & sPfad & "[" & sFile & "]" & sSheet & "'!c1:c3,2,0),"""")"
.Offset(, 4).FormulaR1C1 = _
"=iferror(vlookup(rc[-4],'" & sPfad & "[" & sFile & "]" & sSheet & "'!c1:c3,3,0),"""")"
End With
With Range("D:E")
.Copy
.PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
End Sub

Gruß
Rudi

Anzeige
AW: Makro 2 excel Dateien nach Nummer zusammenkopieren
13.05.2014 13:05:00
Chris
Danke für die schnelle Antworten,
@Rudi
gibt es eine Möglichkeit das es nicht jede Spalte einzeln rüberkopiert sondern z.B. der Bereich con B bis AB? Da es ansonsten sehr lange dauert
@Ralf P.
hab da folgendes Problem ich bekomme den Fehler
"laufzeitfehler 1004 anwendungs-oder objektdefinierter fehler"
eine Frage zu deinem Code
Wo wird der Pfad auf Datei2 hinterlegt?
Danke für eure Mühe

AW: Makro 2 excel Dateien nach Nummer zusammenkopieren
13.05.2014 13:48:31
Rudi
Hallo,
sicher gibt es die.
Sub kopieren()
Const sPfad As String = "c:\test\" 'anpassen
Const sFile As String = "Mappe2.xlsx" 'anpassen
Const sSheet As String = "Tabelle1" 'anpassen
Cells(1, 4) = "Standort"
Cells(1, 5) = "Wert"
With Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp))
.Offset(, 3).Resize(, 27).FormulaR1C1 = _
"=iferror(vlookup(rc1,'" & sPfad & "[" & sFile & "]" & sSheet & "'!c1:c28,column(r1c[-2]), _
0),"""")"
End With
With Range("D:AD")
.Copy
.PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
End Sub

Erheblich schneller geht's wenn Mappe2 geöffnet ist.
Gruß
Rudi

Anzeige
AW: Makro 2 excel Dateien nach Nummer zusammenkopieren
13.05.2014 15:04:31
Chris
Hallo Rudi, hab den Code jetzt umgeändert und
bekomme jetzt folgende Fehlermeldung:
"Laufzeitfehler 13, Typen unverträglich"
kannst du mir da weiter helfen?
Sub kopieren()
Const sPfad As String = "C:\Desktop\"
Const sFile As String = "Datei2.xls"
Const sSheet As String = "DLZ Bereichsstellungnahmen"
Cells(7, 40) = "Erste Beauftr. E-Bereich"
Cells(7, 41) = "Freigabe E-Bereich"
Cells(7, 42) = "DLZ E Beauftr. - Freigabe"
Cells(7, 43) = "DLZ E Beauftr. - akt. Datum"
Cells(7, 44) = "Erste Beauftr. P-Bereich"
Cells(7, 45) = "Freigabe P-Bereich"
Cells(7, 46) = "DLZ P Beauftr. - Freigabe"
Cells(7, 47) = "DLZ P Beauftr. - akt. Datum"
Cells(7, 48) = "Erste Beauftr. K-Bereich"
Cells(7, 49) = "Freigabe K-Bereich"
Cells(7, 50) = "DLZ K Beauftr. - Freigabe"
Cells(7, 51) = "DLZ K Beauftr. - akt. Datum"
Cells(7, 52) = "Erste Beauftr. M-Bereich"
Cells(7, 53) = "Freigabe M-Bereich"
Cells(7, 54) = "DLZ M Beauftr. - Freigabe"
Cells(7, 55) = "DLZ M Beauftr. - akt. Datum"
Cells(7, 56) = "Erste Beauftr. Q-Bereich"
Cells(7, 57) = "Freigabe Q-Bereich"
Cells(7, 58) = "DLZ Q Beauftr. - Freigabe"
Cells(7, 59) = "DLZ Q Beauftr. - akt. Datum"
Cells(7, 60) = "Erste Beauftr. V-Bereich"
Cells(7, 61) = "Freigabe V-Bereich"
Cells(7, 62) = "DLZ V Beauftr. - Freigabe"
Cells(7, 63) = "DLZ V Beauftr. - akt. Datum"
Cells(7, 64) = "Erste Beauftr. MT-Bereich"""
Cells(7, 65) = "Freigabe MT-Bereich"
Cells(7, 66) = "DLZ MT Beauftr. - Freigabe"
Cells(7, 67) = "DLZ MT Beauftr. - akt. Datum"
Cells(7, 68) = "Erste Beauftr. EM-Bereich"
Cells(7, 69) = "Freigabe EM-Bereich"
Cells(7, 70) = "DLZ EM Beauftr. - Freigabe"
Cells(7, 71) = "DLZ EM Beauftr. - akt. Datum"
With Range(Cells(7, 1), Cells(Rows.Count, 1).End(xlUp)).Offset(, 40).Resize(, 72).FormulaR1C1  _
= _
"=iferror(vlookup(rc1,'" & sPfad & "[" & sFile & "]" & sSheet & "'!c1:c28,column(r1c[-2]), _
0),"""")"
End With
With Range("AN:BS")
.Copy
.PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
End Sub

Hier sind die zwei Dateien als Anhang
https://www.herber.de/bbs/user/90658.zip

Anzeige
AW: Makro 2 excel Dateien nach Nummer zusammenkopieren
13.05.2014 16:55:21
Rudi
Hallo,
Sub kopieren()
Dim wkb As Workbook, wks As Worksheet
Const sPfad As String = "c:\desktop\"
Const sFile As String = "Datei2.xls"
Const sSheet As String = "DLZ Bereichsstellungnahmen"
Set wks = ActiveSheet
Set wkb = Workbooks.Open(sPfad & sFile)
With wks
.Cells(7, 40) = "Erste Beauftr. E-Bereich"
.Cells(7, 41) = "Freigabe E-Bereich"
.Cells(7, 42) = "DLZ E Beauftr. - Freigabe"
.Cells(7, 43) = "DLZ E Beauftr. - akt. Datum"
.Cells(7, 44) = "Erste Beauftr. P-Bereich"
.Cells(7, 45) = "Freigabe P-Bereich"
.Cells(7, 46) = "DLZ P Beauftr. - Freigabe"
.Cells(7, 47) = "DLZ P Beauftr. - akt. Datum"
.Cells(7, 48) = "Erste Beauftr. K-Bereich"
.Cells(7, 49) = "Freigabe K-Bereich"
.Cells(7, 50) = "DLZ K Beauftr. - Freigabe"
.Cells(7, 51) = "DLZ K Beauftr. - akt. Datum"
.Cells(7, 52) = "Erste Beauftr. M-Bereich"
.Cells(7, 53) = "Freigabe M-Bereich"
.Cells(7, 54) = "DLZ M Beauftr. - Freigabe"
.Cells(7, 55) = "DLZ M Beauftr. - akt. Datum"
.Cells(7, 56) = "Erste Beauftr. Q-Bereich"
.Cells(7, 57) = "Freigabe Q-Bereich"
.Cells(7, 58) = "DLZ Q Beauftr. - Freigabe"
.Cells(7, 59) = "DLZ Q Beauftr. - akt. Datum"
.Cells(7, 60) = "Erste Beauftr. V-Bereich"
.Cells(7, 61) = "Freigabe V-Bereich"
.Cells(7, 62) = "DLZ V Beauftr. - Freigabe"
.Cells(7, 63) = "DLZ V Beauftr. - akt. Datum"
.Cells(7, 64) = "Erste Beauftr. MT-Bereich"""
.Cells(7, 65) = "Freigabe MT-Bereich"
.Cells(7, 66) = "DLZ MT Beauftr. - Freigabe"
.Cells(7, 67) = "DLZ MT Beauftr. - akt. Datum"
.Cells(7, 68) = "Erste Beauftr. EM-Bereich"
.Cells(7, 69) = "Freigabe EM-Bereich"
.Cells(7, 70) = "DLZ EM Beauftr. - Freigabe"
.Cells(7, 71) = "DLZ EM Beauftr. - akt. Datum"
With .Range(.Cells(8, 1), .Cells(Rows.Count, 1).End(xlUp)).Offset(, 39).Resize(, 72)
.FormulaR1C1 = _
"=iferror(vlookup(rc1,'[" & sFile & "]" & sSheet & "'!c1:c38,column(r1c[-33]), 0),"""")" _
End With
With .Range("AN:BS")
.Copy
.PasteSpecial xlPasteValues
End With
End With
wkb.Close False
Application.CutCopyMode = False
End Sub

Gruß
Rudi

Anzeige
AW: ohne Makro
13.05.2014 09:33:59
UweD
Hallo
Reicht das nicht per sverweis in Datei1 ?
Tabelle1
 ABCDE
1BestellNrStatusBeschreibungStandortWert
210012BE1St1100
310022Be2Es2000
410053BE5   

verwendete Formeln
Zelle Formel Bereich
D2 =WENNFEHLER(SVERWEIS(A2;'C:\Temp\[Datei2.xlsx]Tabelle1'!$A:$C;2;0);"") 
E2 =WENNFEHLER(SVERWEIS(A2;'C:\Temp\[Datei2.xlsx]Tabelle1'!$A:$C;3;0);"") 

Tabellendarstellung in Foren Version 5.49


Gruß UweD

Anzeige
AW: Makro 2 excel Dateien nach Nummer zusammenkopieren
13.05.2014 09:36:25
Ralf
Hallo Chris,
das ist nicht allzu schwierig.
Hier mal ein Ansatz:
ich tipper das mal aus dem Kopf, evtl. schreibfehler
bitte Rückmeldung
sub zusammenkopieren()
dim datei1 as workbook
dim datei2 as workbook
dim sheet1 as worksheet
dim sheet2 as worksheet
dim zelle as range
dim suche as range
set datei1 = activeworkbook   'makro ist in der aktiven datei und die daten sollen dorthin  _
kopiert werden
set sheet1 = datei1.activesheet
'datei2 noch nicht offen:
'workbooks.open "datei2", readonly:=true
set datei2 = workbooks("datei2") 'anpassen
set sheet2 = datei2.worksheets("sheet2") 'anpassen
with sheet2
for each zelle in sheet1.range(sheet1.cells(2,1),sheet1.cells(sheet1.usedrange.rows.count,1))
set suche = .columns(1).find(zelle,xlvalues,xlwhole)
if not suche is nothing then
zelle.offset(,3) = suche.offset(,1)
zelle.offset(,4) = suche.offset(,2)
else
zelle.offset(,3) = "nicht gefunden"
end if
next
end with
end sub

Anzeige
AW: Makro 2 excel Dateien nach Nummer zusammenkopieren
13.05.2014 13:08:44
Chris
Sorry hab vorhin direkt auf eine Antwort zurückgeschrieben anstatt auf alle
Danke für die schnelle Antworten,
@Rudi
gibt es eine Möglichkeit das es nicht jede Spalte einzeln rüberkopiert sondern z.B. der Bereich con B bis AB? Da es ansonsten sehr lange dauert
@Ralf P.
hab da folgendes Problem ich bekomme den Fehler
"laufzeitfehler 1004 anwendungs-oder objektdefinierter fehler"
eine Frage zu deinem Code
Wo wird der Pfad auf Datei2 hinterlegt?
Danke für eure Mühe

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige