Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
964to968
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
964to968
964to968
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Nur Werte kopieren per VBA

Nur Werte kopieren per VBA
04.04.2008 14:28:00
Ramon
Hallo, liebe Excel- und VBA-Freunde!
Ich habe mal wieder ein Problem:
Ein Tabellenblatt soll auf Knopfdruck in eine neue Datei kopiert werden und dann unter einem
bestimmten Namen und einem festgelegten Pfad gespreichert werden. VBA wird gelöscht.
Außerdem sollen nur die Werte und Formate übertragen werden, keine Formeln! Und genau das
bekomme ich nicht hin.
Ich versuche es schon die ganze Zeit mit
Selection.PasteSpecial Paste:=xlPasteValues
Selection.PasteSpecial Paste:=xlFormats
Aber es funktioniert nicht. Weiß auch nicht wirklich, an welcher Stelle ich das ganze einfügen müßte.
Könnt Ihr mir helfen? - Hier der gesamt Code, der bis auf die Formel-Geschichte einwandfrei
funktioniert:

Sub Send_Blatt_kopieren()
Dim strPath As String
Dim strWert As String
Dim shp As Shape
strPath = "G:\SCM\CS\K-Lager-Übersicht\Reports\" 'Pfad
strWert = ActiveSheet.Range("M3")                'Kunde
Application.ScreenUpdating = False
ActiveSheet.Copy
With ActiveWorkbook
Sheets(1).Name = "CS-Report " & strWert & " " & _
Format(Date, "dd.mm.yy")
For Each shp In Sheets(1).Shapes 'Schaltflächen entfernen
shp.Delete
Next
With .VBProject.VBComponents(.VBProject.VBComponents(2).CodeModule).CodeModule  'VBA- _
Code entfernen
.DeleteLines 1, .CountOfLines
End With
.SaveAs strPath & "Report " & strWert & " vom " & " " & _
Format(Date, "dd mm yyyy") & ".xls"
'.Close
End With
Application.CutCopyMode = False      ' Zwischenspeicher löschen
Application.DisplayAlerts = False    ' keine Abfrage ob Tabelle gelöscht werden soll
MsgBox "Der Bericht " & strWert & " wurde auf Pfad " & vbCr & _
strPath & vbCr & " mit aktuellem Datum gespeichert!"
Application.ScreenUpdating = True
End Sub


Danke, Gruß,
Ramon

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur Werte kopieren per VBA
04.04.2008 16:10:00
Daniel
Hi
ich würde nicht das Blatt kopieren, sondern eine neue Datei erstellen und dann die Werte rüberkopieren.
damit sparst du dir das Löschen der Steuerelemente und Makros.
das ist in der Regel auch schneller.
lediglich wenn es spezifische Seiteneinstellungen zum Drucken gibt, müssten diese im neuen Blatt neu erstellt werden.

Sub Send_Blatt_kopieren()
Dim strPath As String
Dim strWert As String
Dim shp As Shape
Dim shZiel As Worksheet
Dim shQuelle As Worksheet
strPath = "G:\SCM\CS\K-Lager-Übersicht\Reports\" 'Pfad
strWert = ActiveSheet.Range("M3")                'Kunde
Application.ScreenUpdating = False
Set shQuelle = ActiveSheet
Workbooks.Add
Set shZiel = ActiveSheet
shZiel.Name = "CS-Report " & strWert & " " & Format(Date, "dd.mm.yy")
shQuelle.Cells.Copy
shZiel.Cells(1, 1).PasteSpecial xlPasteValues
shZiel.Cells(1, 1).PasteSpecial xlPasteFormats

shZiel.Parent.SaveAs strPath & "Report " & strWert & " vom " & " " & Format(Date, "dd mm  _
yyyy") & ".xls"
'.Close
Application.CutCopyMode = False      ' Zwischenspeicher löschen
Application.DisplayAlerts = False    ' keine Abfrage ob Tabelle gelöscht werden soll
MsgBox "Der Bericht " & strWert & " wurde auf Pfad " & vbCr & _
strPath & vbCr & " mit aktuellem Datum gespeichert!"
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Nur Werte kopieren per VBA
04.04.2008 16:26:50
Ramon
Hallo Daniel,
vielen Dank für Deinen Tipp! Das funktioniert schon mal prima!
Lediglich - wie schon von Dir erwähnt- haut es mit den Seiteneinstellungen
nicht mehr hin.
Zum einen werden die auf dem Original eingestellten Seitenränder nicht
übernommen, zum anderen werden aber auch die Spaltenbreiten und
Zeilenhöhen verändert (also auf Excel-Standard gesetzt).
Könnte man dies denn im oben angegebenen VBA-Code noch definieren,
also a) Seitenränder
b) Druckbereich
c) Spaltenbreiten für A - G (alle unterschiedlich)
d) Teilenhöhe
und wenn ja, an welcher Stelle und wie?
Vielen Dank, Gruß,
Ramon

Anzeige
AW: Nur Werte kopieren per VBA
04.04.2008 18:32:15
Daniel
Hi
stelle den Makro-Recorder an und ändere die Seiteneinstellung entsprechend deinen Wünschen ab.
das Aufgezeichnete Makro fügst du dann bei dir ein mit

with sh.Ziel.Pagesetup
... 'hier der Code
End with


oder du kopierst doch das Sheet wie von dir im ersten Makro beschrieben und fügst folgendes ein, um die Formeln durch Werte zu ersezten:


activesheet.copy
with activesheet.usedrange
.formula=.Value
end with
...


dann musst du allerdings wieder den Makrocode und die Steuerelemente entfernen.
Gruß, Daniel

Anzeige
AW: Nur Werte kopieren per VBA
04.04.2008 19:52:00
Ramon
Prima, Daniel,
das mit dem Makro-Recorder war 'ne gute Idee. Jetzt funktioniert alles
wie ich's mir vorgestellt hatte!
Danke, Gruß und schönes Wochenende,
Ramon

AW: Nur Werte kopieren per VBA
04.04.2008 16:10:00
Original
Hi,
With ActiveWorkbook
Sheets(1).Name = "CS-Report " & strWert & " " & _
Format(Date, "dd.mm.yy")
Sheets(1).UsedRange.Copy
Sheets(1).UsedRange.PasteSpecial Paste:=xlPasteValues
For Each shp In Sheets(1).Shapes 'Schaltflächen entfernen
shp.Delete
Next
....................
mfg Kurt

AW: Nur Werte kopieren per VBA
04.04.2008 16:12:00
Hajo_Zi
Hallo Kurt,
fehlen da nicht paar Punkte?

Anzeige

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige