8.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo
ich möchte ein Excelblatt kopieren und dieses als neues excel Sheet auf einem anderen Laufwerk abspeichern. Bis hierhin hab ich es hinbegkommen. Da die Orginaldatei jedoch 18 MB hat, möchte ich das ganze ohne Makro speichern. Und hier komme ich absolut nicht weiter. Kann mir hier jmd weiterhelfen?

grüße


Sub Tabellen_in_neue_Dateien_kopieren()
Dim Pfad As String
Dim wks As Worksheet

'Pfad anpassen
Pfad = "C:\..."
'Pfad = ThisWorkbook.Path & "\"
'prüfen ob Pfad existiert
If Dir(Pfad) = "" Then
Msgbox "Pfad existiert nicht", , "Abbruch"
Exit Sub
End If
On Error GoTo Fehler
Application.ScreenUpdating = False

Application.DisplayAlerts = False
For Each wks In ThisWorkbook.Worksheets
If wks.Name = "XXX" Then
ThisWorkbook.Worksheets(wks.Name).Copy
ActiveWorkbook.SaveAs (Pfad & wks.Name)
ActiveWorkbook.Close
End If
Next wks

Application.DisplayAlerts = True
Application.ScreenUpdating = True
Msgbox "alle Tabellen gespeichert in" & vbNewLine & vbNewLine _
& Pfad, , ""
Exit Sub
Fehler:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Msgbox "FehlerNr.: " & Err.Number & vbNewLine & vbNewLine _
& "Beschreibung: " & Err.Description _
, vbCritical, "Fehler"
End Sub

14 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
wenn Du es ohne Makro machen möchtest mache einfach speichern unter.

Gruß hajo
0 Punkte
Beantwortet von
Hallo

das Makro benötige ich. da alles automatisiert werden soll.

grüße
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

Anfrage
Excel Kopie ohne Makro


AW 2
das Makro benötige ich. da alles automatisiert werden soll.


was denn nun?

Gruß

Helmut
0 Punkte
Beantwortet von
Hallo

also ich habe eine Excel Datei mit Makros mit Berechnungen etc.
Ich will aber dass die Kopie/Sicherungskopie die auf einem anderen Laufwerk z.B. C: gespeichert wird, keinerlei Makros mehr enthält.
Auf Laufwerk I: wird das Orginal mit Speichern unter und mit Makros manuell abgespeichert.

Mittels Button soll eine Sicherungskopie der Tabelle auf Laufwerk C: erfolgen jedoch ohne makros, Berechnungen etc. Also nur Kopie der Daten die in der Excel Tabelle stehen

grüße
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

hier wäre es natürlich interessant zu wissen, welche Excel-Version du nutzt.
Ab Version 2007 besteht die Möglichkeit, Arbeitsmappen ohne Makros zu speichern, z.B. so:

Sub Speichern_unter_neuem_Namen()
Dim Neuer_Dateiname
Neuer_Dateiname = Application.GetSaveAsFilename(InitialFileName:="C:\MeinOrdner\Test.xls", fileFilter:="Excel-Arbeitsmappe, *.xlsx")
If Neuer_Dateiname = False Then Exit Sub
ActiveWorkbook.SaveAs Filename:=Neuer_Dateiname
End Sub


Falls du eine frühere Version benutzt schau mal hier nach:
Klick mich!

Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

in dem o.g. Code ist noch ein Fehler drin. So ist es richtig:

Sub Speichern_unter_neuem_Namen()
Dim Neuer_Dateiname
Neuer_Dateiname = Application.GetSaveAsFilename(InitialFileName:="C:\MeinOrdner\Test.xlsx", fileFilter:="Excel-Arbeitsmappe, *.xlsx")
If Neuer_Dateiname = False Then Exit Sub
ActiveWorkbook.SaveAs Filename:=Neuer_Dateiname
End Sub


Gruß

M.O.
0 Punkte
Beantwortet von
Version Excel 2003....
also mit den Makros aus dem Link und meinem Makro komme ich leider nicht weiter:(
trotzdem danke für die Hilfe
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Rubin,
versuch es mal mit dem Makro, habe es unter Excel 2000 getestet, sollte auch mit Excel 2003 funktionieren.
Unter Excel 2007 fuktioniert es nicht.

Eine Kopie (Backup) der Arbeitsmappe wird erstellt und unter All User gespeichert (Pfad anpassen), Backup wird wieder geöffnet, alle Makros werden gelöscht, gespeichert und geschlossen.

Gruß
fedjo


Sub Backup()
Application.DisplayAlerts = False
Dim FName As String
'Name für die Sicherungskopie aus dem Namen der Originaldatei bilden
FName = Left(ActiveWorkbook.Name, _
InStr(ActiveWorkbook.Name, ".")) & _
"(backup).xls"

ActiveWorkbook.SaveCopyAs Filename:="C:\Dokumente und Einstellungen\All Users\" & FName 'Backup gespeichert
Workbooks.Open Filename:="C:\Dokumente und Einstellungen\All Users\" & FName 'Backup öffnen

Dim Ding As Object 'Makros werden gelöscht
Dim Zeile As Long
Dim Antwort As Integer
For Each Ding In ActiveWorkbook.VBProject.VBComponents
If Ding.Type = 100 Then
With ActiveWorkbook.VBProject.VBComponents(Ding.Name).CodeModule
For Zeile = 1 To .CountOfLines
.DeleteLines 1
Next Zeile
End With
Else
ActiveWorkbook.VBProject.VBComponents.Remove Ding
End If
Next
ActiveWorkbook.Save 'Backup wird gespeichert
ActiveWindow.Close 'Backup wird geschlossen
Application.DisplayAlerts = True
End Sub
0 Punkte
Beantwortet von
Hallo

ich habe den Pfad geändert.
Es wird auch ein Backup erstellt, allerdings sind immernoch alle Makros drin und es kommt die Fehlermeldung "400".
Ich weiß leider nicht wo der Fehler liegt:(

grüße Rubin
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Rubin,
ich habe dir eine Musterdatei ohne Makro erstellt.
Unter Excel 2000 gibt es keine Probleme, ändere den Pfad zum Testen mal nicht, es wird dann das Backup unter All User ohne Makro gespeichert.

Gruß
fedjo
...