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

Schleife für CopyPaste aus anderem Workbook

Schleife für CopyPaste aus anderem Workbook
25.10.2018 14:26:17
Matthias
Hallo zusammen,
Ich habe folgenden Code geschrieben:
Sub CopyPasteDelete()
'L1
Set wbZiel = ThisWorkbook.Worksheets("L1")
Set wbQuelle = ActiveWorkbook.Worksheets("L1")
With wbQuelle
.Range("B3:B9,C3:C9,D3:D9,F3:F9,L3:L9,N3:N9,O3:O9,P3:P9,Q3:Q9,S3:S9,T3:T9,U3:U9,V3:V9,Y3:Y9,AE3: _
_
_
AE9").Copy
wbZiel.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
.Range("B13:B19,C13:C19,D13:D19,F13:F19,K13:K19,L13:L19,O13:O19,P13:P19,Q13:Q19,R13:R19,T13:T19, _
_
_
U13:U19,V13:V19,Y13:Y19,AE13:AE19").Copy
wbZiel.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
End With
'L2
Set wbZiel = ThisWorkbook.Worksheets("L2")
Set wbQuelle = ActiveWorkbook.Worksheets("L2")
With wbQuelle
.Range("B3:B9,C3:C9,D3:D9,F3:F9,L3:L9,N3:N9,O3:O9,P3:P9,Q3:Q9,S3:S9,T3:T9,U3:U9,V3:V9,Y3:Y9,AE3: _
_
_
AE9").Copy
wbZiel.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
.Range("B13:B19,C13:C19,D13:D19,F13:F19,K13:K19,L13:L19,O13:O19,P13:P19,Q13:Q19,R13:R19,T13:T19, _
_
_
U13:U19,V13:V19,Y13:Y19,AE13:AE19").Copy
wbZiel.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
End With
'L7
Set wbZiel = ThisWorkbook.Worksheets("L7")
Set wbQuelle = ActiveWorkbook.Worksheets("L7")
With wbQuelle
.Range("B3:B9,C3:C9,D3:D9,F3:F9,L3:L9,N3:N9,O3:O9,P3:P9,Q3:Q9,S3:S9,T3:T9,U3:U9,V3:V9,Y3:Y9,AE3: _
_
_
AE9").Copy
wbZiel.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
.Range("B13:B19,C13:C19,D13:D19,F13:F19,K13:K19,L13:L19,O13:O19,P13:P19,Q13:Q19,R13:R19,T13:T19, _
_
_
U13:U19,V13:V19,Y13:Y19,AE13:AE19").Copy
wbZiel.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
End With
Set wbZiel = Nothing
Set wbQuelle = Nothing
Application.DisplayAlerts = False
ActiveWorkbook.Close
For Each ws In ActiveWorkbook.Worksheets
If ws.Name  "Gesamtauswertung" Then
ws.Activate
Call Leere_zeilen_loeschen
End If
Next
Worksheets("L1").Activate
End Sub

Wie ihr seht, habe ich jeweils für L1, L2 und L7 einen CopyPaste-Block geschrieben. Im Ziel- sowie Quell-Workbook heißen die Sheets gleich.
Gibt es eine Möglichkeit, dies in eine Schleife zu packen, damit im Code keine drei CopyPaste-Blöcke stehen?
Funktionieren tuts einwandfrei, nur siehts in meinen Augen nicht schön aus.
Vielen Dank!!
Liebe Grüße,
Matthias K.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife für CopyPaste aus anderem Workbook
25.10.2018 15:42:31
EtoPHG
Hallo Matthias,
Nobel muss die Welt zugrunde gehen ;-)
Vielleicht so?
Sub CopyPasteDelete()
Dim wsQuelle As Worksheet, wsZiel As Worksheet
Dim wsZiele, wsIx As Long
wsZiele = Array("L1", "L2", "L7")
Set wsQuelle = ActiveWorkbook.Worksheets("L1")
For wsIx = 0 To UBound(wsZiele)
Set wsZiel = ThisWorkbook.Worksheets(wsZiele(wsIx))
wsQuelle.Range("B3:D9,F3:F9,L3:L9,N3:Q9,S3:V9,Y3:Y9,AE3:AE9 ").Copy
wsZiel.Cells(wsZiel.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
wsQuelle.Range("B13:D19,F13:F19,K13:L19,O13:R19,T13:V19,Y13:Y19,AE13: AE19 ").Copy
wsZiel.Cells(wsZiel.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Next wsIx
Set wsZiel = Nothing
Set wsQuelle = Nothing
' ...etc.
Gruess Hansueli
Anzeige
AW: Schleife für CopyPaste aus anderem Workbook
26.10.2018 08:08:09
Matthias
Guten Morgen Hansueli.
Erstmal vielen Dank.
So ganz klappts nicht. Er kopiert von der Quelle "L1" in Ziel "L1", "L2" und "L7".
Das Makro Soll von Quelle "L1" nach Ziel "L1", Quelle "L2" nach Ziel "L2" usw. kopieren.
Danke für die Bemühungen und lieben Gruß,
Matthias K.
und jetzt....?
26.10.2018 11:40:38
EtoPHG
Selbst bei VBA bescheiden müsstest du doch als Exel-Profi 2 Codelinien vertauschen/anpassen können.
Oder sehe ich das falsch Matthias?
For wsIx = 0 To UBound(wsZiele)
Set wsQuelle = ActiveWorkbook.Worksheets(wsZiele(wsIx))
...
Gruess Hansueli
AW: und jetzt....?
26.10.2018 13:24:19
Matthias
Mahlzeit Hansueli,
Manchmal sieht man den Wald vor lauter Bäumen nicht. Es funktioniert prima, ich danke dir.
Thema Datenschutz steht bei uns zur zeit an und mir brennt der Helm, sonst hätte ich mich der Sache selber angenommen, also vielen, vielen Dank für deine Hilfe.
Grüße,
Matthias K.
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige