Anzeige
Archiv - Navigation
900to904
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
900to904
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Copy - Paste: Werte, aber nicht Formate kopieren

Copy - Paste: Werte, aber nicht Formate kopieren
04.09.2007 12:52:00
Bernd
Hallo zusammen,
für die VBA-Freaks sicherlich einfach:
Mit untenstehendem Code kopiere ich die Werte, aber leider auch die Formate.
Worksheets("1").Cells(5,1).Copy destination:=Worksheets("2").Cells(10,1)
Frage bitte: Wie erreiche ich, dass die bestehenden Formate (Farbe, Zelllinien, Schriftart etc.) in der Destination-Cell beibehalten werden?
Vielen Dank vorab,
Bernd

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nein, das funkt. nicht...
04.09.2007 14:06:00
Bernd
Wenn ich den Code erweitere um " .PasteSpecial Paste:=xlValues ", dann kommt die Fehlermeildung " Erwartet Anweisungsende".
Worksheets("1").Cells(5,1)..PasteSpecial Paste:=xlValues destination:=Worksheets("2").Cells(10,1)
Please help....
Danke vorab
Bernd

AW: Copy - Paste: Werte, aber nicht Formate kopieren
04.09.2007 14:18:40
Hajo_Zi
Hallo Bernd,
kopiere nur die Werte.

Sub Werte()
'   Formeln ersetzen durch Werte ohne Formate
Columns("B:C").Copy
Columns("B:C").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False         'Zwischenspeicher löschen
End Sub



Anzeige
@HaJo, bitte.
04.09.2007 14:40:51
Bernd
Hi hajo,
erst mal Danke, für deine Hilfe. Problem: Werte eines Folgejahres in die Zelle des Vorjahres kopieren
(bei Budgetüberarbeitung sollen die Werte z.B. vom Jahr 2008 in die Zelle geschrieben werden, die urüsprünglich die Werte von 2007 enthielten etc.). Die Formate dabei sind aber unterschiedlich.Ich will die urpsünglich in der Zielzelle enthaltenen Formate beibehalten.
Ich habe dir mal einen Code (u.a. mit deinen Teilen) beigefügt, an dem ich momentan bastele, der aber in der ersten Range-Zeile schon stehenbleibt.
' Formeln ersetzen durch Werte ohne Formate

Sub NurWerteKopieren()
Dim Financials As Worksheet
With Financials
.Range("Costs_FY2").Copy
.Range("Costs_FY1").PasteSpecial Paste:=xlValues
.Range("Costs_FY4").Copy
.Range("Costs_FY3").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False         'Zwischenspeicher löschen
End With
End Sub


Vielen Dank vorab.
Grüße
Bernd

Anzeige
AW:Werte kopieren
04.09.2007 14:50:00
Hajo_Zi
Hallo Bernd,
was mir auffällt Du definierst Financials , schreibst aber nichts drauf vor der ersten Verwendung.
Ich gehe mal von aus die verwendeten Namen gibt es in der Tabelle.
Ein anonymes Beispiel ist manchmal auch nicht schlecht.
Kleiner Tip am Rande niemals jemand prsönlich mit einer Frage ansprechen, das könnte andere davon abhalten. Falls der Antworter die Mailbenachrichtigung aktiviert hat, liest er auch Deinen Beitrag, vermute ich mal.
Gruß Hajo

AW: AW:Werte kopieren
04.09.2007 16:31:17
Bernd
Hi Hajo,
ich habe jetzt mal eine Bsp.Datei gebastelt. Du vermutest richtig, dass ich Namen verwende.
Deine Aussage zu "was mir auffällt..." verstehe ich fachlich nicht. Ich bin leider ein VBA-Nichtkönner.
Willst du mir bei meinem Problem "Copy_Paste bei Beibehaltung der Formatierungen".
https://www.herber.de/bbs/user/45681.xls
Tausend Dank vorab,
Bernd

Anzeige
AW: AW:Werte kopieren
04.09.2007 16:42:00
Hajo_Zi
Hallo Bernd,
Du hast Financials definierst und schreibst dann With Financials die Variable ist aber nichht belegt.

Sub NurWerteKopieren()
'    Dim Financials As Worksheet
With ActiveSheet ' Financials
.Range("Costs_FY2").Copy
.Range("Costs_FY1").PasteSpecial Paste:=xlValues
.Range("Costs_FY3").Copy
.Range("Costs_FY2").PasteSpecial Paste:=xlValues
.Range("Costs_FY4").Copy
.Range("Costs_FY3_Q1").PasteSpecial Paste:=xlValues
.Range("Costs_FY4").Value = "0"
Application.CutCopyMode = False         'Zwischenspeicher löschen
End With
End Sub


Gruß Hajo

Anzeige
lezte Frage
04.09.2007 18:49:00
Bernd
Danke Dir noch einmal, HaJo,
letzte Frage und Bitte:
warum speichert mein kompletter Code denn das Blatt nicht ab? Wenn Du aber nicht mehr willst, bin ich dir auch nicht nachtragend :-) . Versteh' ich. So ein Kleinkram.

Sub kopieren_einfuegen()
Dim VarDat As Variant
Dim Mappe As Workbook
Dim rg As Range
Dim Sum As Range
Dim GB As Range
Dim Financials As Worksheets
With Application.FileSearch
.NewSearch
.LookIn = "P:\Budgetplanung"
.SearchSubFolders = True
.Filename = "*.xls"
.Execute
For Each VarDat In .FoundFiles
If InStr(VarDat, "zz_Batch_ab_V3.0.xls") > 0 Then
Else
Application.EnableEvents = False
Set Mappe = Workbooks.Open(VarDat)
Application.EnableEvents = False
Application.ScreenUpdating = False
Mappe.Sheets("Financials").Unprotect ("tsoic")
With ActiveSheet ' Financials
.Range("Costs_FY2").Copy
.Range("Costs_FY1").PasteSpecial Paste:=xlValues
.Range("Costs_FY3").Copy
.Range("Costs_FY2").PasteSpecial Paste:=xlValues
.Range("Costs_FY4").Copy
.Range("Costs_Q1").PasteSpecial Paste:=xlValues
.Range("Costs_FY4").Value = "0"
Application.CutCopyMode = False         'Zwischenspeicher löschen
End With
Mappe.Close savechanges:=True
End If
Next VarDat
Application.ScreenUpdating = True
End With
End Sub


Grüße
Bernd

Anzeige
AW: lezte Frage
04.09.2007 19:07:24
Hajo_Zi
Hallo Bernd,
es soll doch bestimmt die Datei gespeichert werden und nicht das Blatt.
das kann ich nicht testen da 2007 Application.FileSearch nicht mer unterstützt.

Option Explicit
Sub kopieren_einfuegen()
Dim VarDat As Variant
Dim Mappe As Workbook
With Application.FileSearch
.NewSearch
.LookIn = "P:\Budgetplanung"
.SearchSubFolders = True
.Filename = "*.xls"
.Execute
Application.ScreenUpdating = False
For Each VarDat In .FoundFiles
If Not InStr(VarDat, "zz_Batch_ab_V3.0.xls") > 0 Then
Application.EnableEvents = False
Set Mappe = Workbooks.Open(VarDat)
Application.EnableEvents = False
With Mappe.Sheets("Financials")
.Unprotect ("tsoic")
.Range("Costs_FY2").Copy
.Range("Costs_FY1").PasteSpecial Paste:=xlValues
.Range("Costs_FY3").Copy
.Range("Costs_FY2").PasteSpecial Paste:=xlValues
.Range("Costs_FY4").Copy
.Range("Costs_Q1").PasteSpecial Paste:=xlValues
.Range("Costs_FY4").Value =0
Application.CutCopyMode = False         'Zwischenspeicher löschen
End With
Mappe.Close savechanges:=True
End If
Next VarDat
Application.ScreenUpdating = True
End With
Set Mappe = Nothing
End Sub


Gruß Hajo

Anzeige
Gelöst!!
04.09.2007 19:14:00
Bernd
Habe das Problem gerade selber gelöst. Trotzdem tausend Dank an Dich. Ohne Dich hätte ich es nicht geschafft!
Grüße
Bernd

252 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige