Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1252to1256
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
Einzelne Exceltabellen kopieren in neue Mappe
Holger
Hallo,
ich habe ein Problem.
Ich habe eine Excelabelle mit mehreren Blättern.
Nun möchte ich mit einem Button einzele Sheets kopieren in eine andere Mappe und diese dann Speichern.
Jetzt habe ich einen Code der auch genauso geht, aber kann ich da nur ein Sheet Speichern.
Ich möchte aber mehrere kopieren.
Dann sollte aber auch der ganze VB Code aus der neuen Tabelle gelöcht werden und wenn möglich beim Kopieren nur Werte eingefügt werden.
Mein jetziger code der schon geht schaut so aus:
[code]

Sub Speichern_pf()
Dim varDateiname As Variant
Dim Dateiendung As String
Dateiendung = " .xls"
Dim Haendler As String
Haendler = ThisWorkbook.Worksheets("Beanstandung").Range("J18").Value
Dim fachberater As String
fachberater = ThisWorkbook.Worksheets("Beanstandung").Range("S11").Value
Dim verarbeiter As String
verarbeiter = ThisWorkbook.Worksheets("Beanstandung").Range("S18").Value
Dim Baustelle As String
Baustelle = ThisWorkbook.Worksheets("Beanstandung").Range("AA18").Value
ChDir "\"
ChDrive "c:\"
varDateiname = Application.GetSaveAsFilename("FPB" & ", " & Haendler & ", " & verarbeiter & _
", " & Baustelle & ", " & Format(Time, "ss") & Dateiendung, "Microsoft Excel-Dateien (*.xls),*.xls*,")
If TypeName(varDateiname) = "String" Then 'Wenn Dateiname angegeben wurde und mit OK bestä  _
_
tigt :
ActiveSheet.Copy    'Kopiert nur das aktuelle Blatt in eine neue Mappe
'ActiveSheet.xlUnlockedCells
Dim Blatt As Worksheet, rngSichern As Range
Set Blatt = Worksheets("Frost Pfleiderer Beanstandung")
Set rngSichern = Blatt.[A1:AD166]
'Blatt.Unprotect
''Setzt alle "Gesperrt"-Haken auf "Aus"
Blatt.Cells.Locked = False
''Setzt die Haken im Bereich rngSichern = A1:B11
rngSichern.Locked = True
ActiveSheet.Protect "Test", DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveWorkbook.SaveAs varDateiname 'neue Mappe unter eingegebenenm Namen speichern
ActiveWorkbook.Close 'Neue Mappe wieder schliessen
'MsgBox "Dateiname :" & vbLf & vbLf & varDateiname, vbOKOnly + vbInformation, "Datei   _
_
wurde gespeichert :"
End If
End Sub

[/code]

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Einzelne Exceltabellen kopieren in neue Mappe
05.03.2012 17:45:04
Hajo_Zi
Halllo Holger,
zum Löschen des Codes ist dere Zugriif auf das VBA Projekt notwendig.

AW: Einzelne Exceltabellen kopieren in neue Mappe
05.03.2012 18:01:04
Tino
Hallo,
mehrere Tabellen könnte man so kopieren.
Sub kopiereTabellen()
Dim ArrayTab(), varTab
Dim iCalc%

ArrayTab = Array("Tabelle1", "Tabelle3", "Tabelle1 (2)")

With Application
    iCalc = .Calculation
    .Calculation = xlCalculationManual
    .ScreenUpdating = False
    .EnableEvents = False
    
    'Tabellen kopieren 
    Sheets(ArrayTab).Copy
    
    'Formelergebnis durch feste Werte ersetzten 
    For Each varTab In ActiveWorkbook.Sheets
        varTab.UsedRange.Value = varTab.UsedRange.Value
    Next varTab

    .Calculation = iCalc
    .EnableEvents = True
    .ScreenUpdating = True
End With
End Sub
Zum Thema Code in Tabellen entfernen.
Ich würde die Datei so aufbauen das man erst gar keinen Code in den Tabellen stehen hat.
ZBsp. kann man Private Sub Worksheet_Change(ByVal Target As Range)
auch in DieserArbeitsmappe finden, dann muss man nur noch die Tabelle entsprechend abfangen.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Sh ist dann die Tabelle.
Oder so wie ich es machen würde, gleich über Klassenprogrammierung.
Bsp. hier unter meinem Beitrag.
https://www.herber.de/forum/archiv/1164to1168/t1167751.htm#1167795
Gruß Tino
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige