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

Kopieren nur Werte übertragen

Kopieren nur Werte übertragen
02.10.2016 22:09:53
chris58
Hallo !
Ich habe diesen genialen Code hier gefunden um ein Tabellenblatt in eine neue Mappe zu kopieren. . Auf der zu exportierenden Mappe sind Buttons mit Makros eingetragen. Diese sollten auf der neuen Mappe nicht aufscheinen. Ich bräuchte nur die Werte in der neuen Mappe.
Was muß ich ändern das dies so geht ?
Danke
chris58
Sub BlattKopieren()
Dim strFile As String
strFile = "MAPPE1_DATEN"   'Hier kanst du den Dateinamen vorgeben!
'Auch mit Pfad!
'"C:\Eigene Dateien\MAPPE1_DATEN"
strFile = Application.GetSaveAsFilename(InitialFileName:=strFile, _
fileFilter:="Excel Files (*.xls; *.xla; *.xlt), *.xls; *.xla; *.xlt")
If strFile = "Falsch" Then Exit Sub
Workbooks("Master.xls").Sheets("Bereinigt").Copy
With ActiveWorkbook
.Sheets(1).Name = "Exportdaten"
.SaveAs strFile
'.Close   'wenn die neue Mappe geschlossen werden soll!
End With
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren nur Werte übertragen
02.10.2016 22:33:56
Daniel
Hi
das Sheets.Copy kopiert das komplette Tabellenblatt mit allen Inhalten und den Makrocodes
für eine "nur Werte-Kopie" legt man am besten eine neue leere Datei an und kopiert die gewünschten Inhalte hinein.
...
Workbooks.Add xlWBATWorksheet
Workbooks("Master.xls").Sheets("Bereinigt").UsedRange.Copy
Activesheet.Name = "Exportdaten"
ActiveSheet.PasteSpecial xlPasteValues
ActiveSheet.PasteSpecial xlPasteFormats
ActiveWorkbook.SaveAs strfile
...

Gruß Daniel
AW: Kopieren nur Werte übertragen
02.10.2016 23:31:47
chris58
Hallo !
Ja, das war mir klar. Nur diese Zeilen schauen nicht so aus, als ob ich das einfach übernehmen könnte.
Nur, wie bekomm ich diese Zeile in den bestehenden Code rein, das ist mir nicht so klar.
chris58
Workbooks.Add xlWBATWorksheet
Workbooks("Master.xls").Sheets("Bereinigt").UsedRange.Copy
Activesheet.Name = "Exportdaten"
ActiveSheet.PasteSpecial xlPasteValues
ActiveSheet.PasteSpecial xlPasteFormats
ActiveWorkbook.SaveAs strfile
Sub BlattKopieren()
Dim strFile As String
strFile = "MAPPE1_DATEN"   'Hier kanst du den Dateinamen vorgeben!
'Auch mit Pfad!
'"C:\Eigene Dateien\MAPPE1_DATEN"
strFile = Application.GetSaveAsFilename(InitialFileName:=strFile, _
fileFilter:="Excel Files (*.xls; *.xla; *.xlt), *.xls; *.xla; *.xlt")
If strFile = "Falsch" Then Exit Sub
Workbooks("Master.xls").Sheets("Bereinigt").Copy
With ActiveWorkbook
.Sheets(1).Name = "Exportdaten"
.Sheets(1).UsedRange.Value = .Sheets(1).UsedRange.Value
.SaveAs strFile
.Close   'wenn die neue Mappe geschlossen werden soll!
End With
End Sub

Anzeige
AW: Kopieren nur Werte übertragen
03.10.2016 00:11:27
Daniel
Hi
naja, das fügst du anstelle von dem ein, was du sonst zum kopieren und einfügen des Blattes verwendest.
deinen eigenen Code solltest du ja kennen, und da VBA im großen und ganzen englische Begriffe verwendet, muss man ja nicht jedesmal ins Handbuchschauen um zu erraten, wofür die einzelne Befehlszeile gut sein könnte.
ein bisschen Mitdenken hat beim Programmieren noch nie geschadet.
Gruß Daniel
AW: Kopieren nur Werte übertragen
02.10.2016 22:34:43
Fennek
Hallo,
versuche eine Zeile einzufügen:

With ActiveWorkbook
.Sheets(1).Name = "Exportdaten"
'NEU
.value = .value
.SaveAs strFile
'.Close   'wenn die neue Mappe geschlossen werden soll!
End With
mfg
Anzeige
AW: Kopieren nur Werte übertragen
02.10.2016 22:52:56
chris58
Hallo !
Habe den Code geändert, nur jetzt kommt dann ein Laufzeitfehler 438.
chris58
Sub BlattKopieren()
Dim strFile As String
strFile = "MAPPE1_DATEN"   'Hier kanst du den Dateinamen vorgeben!
'Auch mit Pfad!
'"C:\Eigene Dateien\MAPPE1_DATEN"
strFile = Application.GetSaveAsFilename(InitialFileName:=strFile, _
fileFilter:="Excel Files (*.xls; *.xla; *.xlt), *.xls; *.xla; *.xlt")
If strFile = "Falsch" Then Exit Sub
Workbooks("Master.xls").Sheets("Bereinigt").Copy
With ActiveWorkbook
.Sheets(1).Name = "Exportdaten"
 .Value = .Value 'hier ist der Fehler
.SaveAs strFile
'.Close   'wenn die neue Mappe geschlossen werden soll!
End With
End Sub

Anzeige
AW: Kopieren nur Werte übertragen
02.10.2016 22:58:37
Daniel
Hi
das .Value = .Value musst du auf einen Zellbereich anwenden, nicht auf das Workbook.
With .ActiveWorkbook
.Sheets(1).UsedRange.Value = .Sheets(1).UsedRange.Value
End with
aber das eleminiert nur die Formeln und keine Makros oder gar Buttons.
Gruß Daniel
AW: Kopieren nur Werte übertragen
02.10.2016 23:06:19
chris58
Hallo !
Danke, das geht nun, jedoch sind die Buttons in der neuen Mappe noch drinnen.
chris58
AW: Kopieren nur Werte übertragen
02.10.2016 23:25:46
Daniel
naja, du hast ja nicht nur von Fennek eine Antwort bekommen, sonderen davor noch von jemand anderem.
Wenn du diese Antwort einfach ignorierst, könnte der Anworter das als grobe Unhöflichkeit von dir empfinden.
Gruß Daniel
Anzeige
AW: Kopieren nur Werte übertragen
03.10.2016 00:29:01
chris58
Hallo !
Gut, dann laß ich es halt so. Habe keinen Plan.
chris
Sub BlattKopieren()
Dim strFile As String
strFile = "MAPPE1_DATEN"   'Hier kanst du den Dateinamen vorgeben!
'Auch mit Pfad!
'"C:\Eigene Dateien\MAPPE1_DATEN"
strFile = Application.GetSaveAsFilename(InitialFileName:=strFile, _
fileFilter:="Excel Files (*.xls; *.xla; *.xlt), *.xls; *.xla; *.xlt")
If strFile = "Falsch" Then Exit Sub
Workbooks("Master.xls").Sheets("Bereinigt").Copy
With ActiveWorkbook
.Sheets(1).Name = "Exportdaten"
.Sheets(1).UsedRange.Value = .Sheets(1).UsedRange.Value
.SaveAs strFile
.Close   'wenn die neue Mappe geschlossen werden soll!
End With
End Sub

Anzeige
AW: Kopieren nur Werte übertragen
03.10.2016 12:43:48
chris58
Hallo Daniel !
Habe es nun nach längern probieren geschafft und die Zeile eingebaut.
Danke nochmals für Deine Hilfe.
chris58
Sub BlattKopieren()
Dim strFile As String
strFile = "MAPPE1_DATEN"   'Hier kanst du den Dateinamen vorgeben!
'Auch mit Pfad!
'"C:\Eigene Dateien\MAPPE1_DATEN"
strFile = Application.GetSaveAsFilename(InitialFileName:=strFile, _
fileFilter:="Excel Files (*.xls; *.xla; *.xlt), *.xls; *.xla; *.xlt")
If strFile = "Falsch" Then Exit Sub
Workbooks("Master.xls").Sheets("Bereinigt").Copy
With ActiveWorkbook
.Sheets(1).Name = "Exportdaten"
.Sheets(1).UsedRange.Value = .Sheets(1).UsedRange.Value
.Sheets(1).DrawingObjects.Visible = False
.SaveAs strFile
.Close   'wenn die neue Mappe geschlossen werden soll!
End With
End Sub

Anzeige
AW: Kopieren nur Werte übertragen
03.10.2016 16:21:53
Daniel
schön das du dich selber drum bemühst.
Aber warum blendest du die Objekte nur aus und löschst sie nicht gleich ganz?
die Makros sind dann immer noch drin.
ich würde ja empfehlen:
- neue Datei erstellen
- daten kopieren und als Wert einfügen
- daten kopierne und Formate einfügen.
wenn du nicht weißt, wie das programmiert wird, kannst du es auch mal von Hand ausführen und mit dem Recorder aufzeichnen.
Gruß Daniel

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige