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

Worksheet Copy mit For Next Loop

Worksheet Copy mit For Next Loop
22.10.2022 19:00:13
Kalle
Guten Abend Expertenrunde,
folgendes Problem: ich möchte Werte von meheren Sheets per Makro in eine absolut baugleiche Arbeitsmappe mit identischen Sheet-Namen und CodeNamen übertragen. Leider funktioniert mein Ansatz bislang nur bis zum Auslesen der relevanten Sheet-Namen/Code-Namen, nicht aber der Kopiervorgang an sich. Und jetzt wird es richtig merkwürdig: Es kommt keine Fehlermeldung ...
Mappe Quelle: https://www.herber.de/bbs/user/155797.xlsm
Mappe Ziel: https://www.herber.de/bbs/user/155796.xlsm
(muss im selben Ordner sein; Dateiname siehe VBA-Code unten)
Vielleicht fällt Euch ja etwas auf ... ich bin total ratlos; möchte aber die schlanke Schleifenvariante unbedingt zum Laufen bekommen.

Sub MISC_iTD_Live_Migration_Daten()
Dim lr As Long
Dim wbQuelle, wbZiel As Workbook
Dim ws As Worksheet
Dim cn As Integer
Dim DValue, TValue, tl As String
DValue = Format(Date, "dd.mm.yy")
TValue = Format(Time, "hh:mm")
tl = UCase(Environ$("USERNAME"))
If MsgBox("Achtung: Live-Migration?", vbExclamation + vbYesNo + vbDefaultButton2, "iTD PLANUNGSASSISTENT") = vbYes Then
Set wbZiel = Workbooks.Open(FileName:=ThisWorkbook.Path & "\individualisierte Testdiagnostik (iTD) - LEER -.xlsm", UpdateLinks:=3)
Set wbQuelle = ThisWorkbook
For Each ws In wbQuelle.Worksheets
cn = Val(Right(ws.CodeName, Len(ws.CodeName) - 7))
If cn > 100 And cn 
Danke vorab ...
Kalle

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet Copy mit For Next Loop
22.10.2022 19:22:34
Nepumuk
Hallo Kalle,
klar, du fügst immer im selben Sheet ein aus dem du kopiert hast.
ws.Range("A6:AK" & lr).Copy
With wbZiel
ws.Range("A6:AK" & lr).PasteSpecial Paste:=xlPasteValues
ws.Cells(1, 33) = " letzter Import: " & tl & ", " & DValue & ", " & TValue & " Uhr"
End With
Teste mal so:

Public Sub MISC_iTD_Live_Migration_Daten()
Dim lr As Long
Dim wbQuelle, wbZiel As Workbook
Dim ws As Worksheet
Dim cn As Integer
Dim DValue, TValue, tl As String
DValue = Format(Date, "dd.mm.yy")
TValue = Format(Time, "hh:mm")
tl = UCase(Environ$("USERNAME"))
If MsgBox("Achtung: Live-Migration?", vbExclamation + vbYesNo + vbDefaultButton2, "iTD PLANUNGSASSISTENT") = vbYes Then
Set wbZiel = Workbooks.Open(FileName:=ThisWorkbook.Path & "\individualisierte Testdiagnostik (iTD) - LEER -.xlsm", UpdateLinks:=3)
Set wbQuelle = ThisWorkbook
Application.EnableEvents = False
For Each ws In wbQuelle.Worksheets
cn = Val(Right(ws.CodeName, Len(ws.CodeName) - 7))
If cn > 100 And cn 
Gruß
Nepumuk
Anzeige
AW: Worksheet Copy mit For Next Loop
22.10.2022 19:44:50
Kalle
Hi Nepomuk,
Danke für Deine Lösung! Jetzt läuft es wie es sein soll. Du hast noch eine Zusatzfunktion angewendet; interessant. Ich dachte, wenn wbZiel definiert ist und die Sheet-(Code)Names in beiden Mappen identisch sind, müsste ja so auch der richtige String für den Paste Befehl zustande kommen. Ist aber offenbar nicht der Fall.
Frage geklärt und nochmal ein dickes Danke!!!
Kalle
AW: Worksheet Copy mit For Next Loop
23.10.2022 12:40:01
snb
Warum reicht 'SaveCopyAs nicht ?
Oder

for each it in sheets
if it.name"x" then it.copy ,workbooks("andere datei.xlsm").sheets(workbooks("andere datei.xlsm").sheets,count)
Next
P.S. Und schau mal bitte

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
an
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige