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

Probleme beim Tabellenblatt kopieren

Probleme beim Tabellenblatt kopieren
18.06.2013 15:55:30
Christian
Hallo Leute,
ich würde gerne ein komplettes Tabellenblatt mittels Schaltfläche in ein neues Workbook mit variablen Dateinamen (wird aus Zelle des aktiven WBs gelesen) kopieren und dieses danach speichern&schließen. Das neue Workbook soll in einem Unterordner des aktiven WBs names "Archiv" abgelegt werden.
Ich habe schon reichlich Hilfe von Rudi bekommen (Danke dafür!) und mich jetzt durchs Archiv gewühlt.
Hier mal mein daraus resultierender Codeschnipsel:
Dim wkbArchiv As Workbook, wksArchiv As Worksheet
Dim wksForm As Worksheet
Set wksForm = ActiveSheet
Set wkbArchiv = Workbooks.Add(1)
Set wksArchiv = wkbArchiv.Sheets(1)
wksArchiv.Name = wksForm.Range("F13")
With wksForm
.Copy
End With
With wkbArchiv
.SaveAs wksForm.Parent.Path & "\archiv\" & wksForm.Range("F13") & ".xlsx"
.Close
Es klappt auch soweit mit dem kopieren, er legt mir auch die gewünschte Datei im Archiv-Ordner an. Leider bleibt diese Datei leer und das zu kopierende Tabellenblatt erscheint als (ungespeicherte) "Mappe 1", welche dann von Hand gespeichert werden müsste. Mit dem Code möchte ich erreichen, dass eben genau dieses kopierte Tabellenblatt in der jeweiligen Datei im Archiv gespeichert wird.
Vielen Dank für Eure Hilfe!
Gruß
Chris

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
VBA : Tabellenblatt in neue Mappe kopieren
18.06.2013 16:10:44
NoNet
Hi Chris,
der Fehler liegt darin, dass Du zunächst eine neue Mappe erstellst (Workbooks.Add(1)), aber das Blatt wiederum in eine weitere neue Mappe kopierst. Die Tücke ligt in der Anweisung wksForm.Copy, die das Blatt automatisch in eine neu erzeugte Mappe kopiert !
Hier der korigierte Code :
Sub Blatt_Kopieren()
Dim wkbArchiv As Workbook, wksArchiv As Worksheet
Dim wksForm As Worksheet
Set wkbArchiv = ActiveWorkbook
Set wksForm = ActiveSheet
Set wksArchiv = wkbArchiv.Sheets(1)
wksArchiv.Name = wksForm.Range("F13")
With wksForm
.Copy
Set wkbArchiv = ActiveWorkbook 'die neu erzeugte Mappe
End With
With wkbArchiv
'.SaveAs wksForm.Parent.Path & "\archiv\" & wksForm.Range("F13") & ".xlsx"
.SaveAs wksForm.Parent.Path & "\archiv\" & wksArchiv.Name & ".xlsx"
.Close
End With
End Sub

Gruß, NoNet

Anzeige
OT, NoNet: Infos Online owT
18.06.2013 20:43:21
Uduuh

AW: Probleme beim Tabellenblatt kopieren
18.06.2013 16:15:30
Rudi
Hallo,
With wksForm
.Copy
End With

damit kopierst du das Blatt in eine neue Mappe. Damit ist das vorhergehende Erstellen eines neuen WB überflüssig.
Sub aaa()
Dim wksForm As Worksheet
Set wksForm = ActiveSheet
With wksForm
.Copy
End With
With ActiveWorkbook
.Sheets(1).Name = wksForm.Range("F13")
.SaveAs wksForm.Parent.Path & "\archiv\" & wksForm.Range("F13") & ".xlsx"
.Close
End With
End Sub
Gruß
Rudi

AW: Probleme beim Tabellenblatt kopieren
19.06.2013 08:28:06
Christian
Guten Morgen,
vielen Dank für Eure Hilfe. Es funktioniert jetzt alles einwandfrei und wie gewollt.
Zumindest fast.
Es gibt noch ein Problem: Da das zu kopierende Arbeitsblatt in der Ursprungsdatei Makros enthält, kommt nach dem Kopieren&Speichern eine Abfrage, die mit "JA" bestätigt werden muss. Ich denke, dass diese mit einem einfachen Befehl bestätigt werden kann. Werde mich dafür mal ins Archiv begeben.
Danke nochmals für die schnelle Hilfe.
Gruß
Chris

Anzeige
AW: Probleme beim Tabellenblatt kopieren
19.06.2013 08:42:47
Christian
Hallo nochmal,
jetzt gibt es doch noch ein kleines Problem mit dem ich nicht weiter komme:
In dem Original-Tabellenblatt ist eine Funktion "=HEUTE()" hinterlegt. Sinn und Zweck der archivierten (also kopierten) Tabellenblätter ist, später noch Änderungen vornehmen zu können. Jetzt habe ich aber das Problem, dass die Funktion mit kopiert wird, d.h. sollte ich in ein paar Wochen die Archiv-Datei öffnen, wird das Datum wieder aktualisiert.
Ist es möglich, das komplette Blatt wie bisher zu kopieren und dabei eine Zelle "als Wert" zu kopieren, damit die Datumsfunktion in der Archiv-Datei verschwindet?
Mein Code sieht mittlerweile folgendermaßen aus:
Dim wksForm As Worksheet
Set wksForm = ActiveSheet
With wksForm
.Copy
End With
With ActiveWorkbook
.Sheets(1).Name = wksForm.Range("F13")
.SaveAs wksForm.Parent.Path & "\archiv\" & wksForm.Range("F13") & ".xlsx"
Application.DisplayAlerts = False
.Close
End With
Habe nach Recherche im Archiv versucht, eine Abfrage die nach dem Kopieren auftaucht mit der gefetteten Zeile zu unterbinden, leider taucht sie trotzdem auf. Ich möchte sie mit "JA" bestätigt haben.
Weiß jemand Rat?
Danke!
Gruß
Chris

Anzeige
AW: Probleme beim Tabellenblatt kopieren
19.06.2013 08:46:53
Christian
DisplayAlert-Problem gelöst!

Formel in Wert
19.06.2013 14:00:16
Rudi
Hallo,
Ist es möglich, das komplette Blatt wie bisher zu kopieren und dabei eine Zelle "als Wert" zu kopieren, damit die Datumsfunktion in der Archiv-Datei verschwindet?
sicher.
Sheets(1),Range("A1").Value = Sheets(1),Range("A1").Value
Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige