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

"Werte" mit Makros kopieren

"Werte" mit Makros kopieren
05.06.2008 11:10:00
Tobi
Hallo,
ich kopiere mit dem folgenden Befehl Spalten von einer Exceltabelle in eine andere:
.Sheets("Data").Range("A:A").Copy Destination:=Others.Range("A:A")
Jetzt habe ich das Problem, dass ich in einer Spalte Formeln habe. Mit dem oben beschriebenen Befehl kopiert es mir die Formeln in die andere Datei und dadurch bekomme ich (wegen verlinkungen) falsche Werte.
Wie kann ich das Makro gegebenenfalls verändern, so dass es mir "Werte" in die andere Datei kopiert?
Also so wie wenn man bei Excel auf "Inhalte einfügen" klickt und dann auf "Werte"
Vielen Dank im Voraus für Euere Hilfe.
Gruß´
tobi

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Werte" mit Makros kopieren
05.06.2008 11:13:00
Worti
Hallo tobi,
das geht mit PasteSpecial. Schau dir mal dazu die XL-Hilfe an. Du benötigst die Option Paste:=xlPasteValues
Gruß
Worti

AW: "Werte" mit Makros kopieren
05.06.2008 11:20:57
Tobi
Hi Worti,
vielen Dank für deine schnelle Antwort. Kenn mich leider gar nicht mit gut mit Makros aus. Müsste mein Makro jetzt so lauten?
.Sheets("Data").Range("A:A"). xlPasteValues Destination:=Others.Range("A:A")
Hoffe du kannst mir weiterhelfen.
Gruß
Tobi

AW: "Werte" mit Makros kopieren
05.06.2008 11:34:47
Renee
Hi Tobi,
Das kannst du nicht in einem Schritt machen, aber etwa so:

.Sheets("Data").Range("A:A").Copy
Others.Range("A:A").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False


GreetZ Renée

Anzeige
AW: "Werte" mit Makros kopieren
05.06.2008 11:57:00
Tobi
Hallo ihr beiden,
Vielen Dank schon mal für euere Antworten. Leider funktioniert das Makro nicht. Ich habe euch vergessen zu sagen, dass es sich um 2 verschiedene Exceltabellen handelt. Vielleicht geht es darum nicht? Anbei schicke ich euch mal mein komplettes bisheriges Makro (bei den fett gedruckten Zeilen würde ich gerne nur die Werte kopieren):
'Daten aus PlaTo kopieren

Sub LoadButton_Click()
Dim Prod As Worksheet
Dim filetoopen As String
Application.ScreenUpdating = False
filetoopen = Application.GetOpenFilename("Excel Files (*.xls), *.xls")
If filetoopen  "False" And filetoopen  "Falsch" And filetoopen  "" Then
Workbooks.Open filetoopen
With ActiveWorkbook
'Produktion
Set Prod = ThisWorkbook.Sheets("Prod")
.Sheets("Prod").Range("A:A").Copy Destination:=Prod.Range("A:A")
.Sheets("Prod").Range("B:B").Copy Destination:=Prod.Range("B:B")
.Sheets("Prod").Range("D:D").Copy Destination:=Prod.Range("BD:BD")
.Sheets("Prod").Range("E:E").Copy Destination:=Prod.Range("BE:BE")
.Sheets("Prod").Range("F:F").Copy Destination:=Prod.Range("BF:BF")
'Umsatz
Set Rev = ThisWorkbook.Sheets("Rev")
.Sheets("Rev").Range("A:A").Copy Destination:=Rev.Range("A:A")
.Sheets("Rev").Range("B:B").Copy Destination:=Rev.Range("B:B")
.Sheets("Rev").Range("C:C").Copy Destination:=Rev.Range("C:C")
'Material
Set Mat = ThisWorkbook.Sheets("Mat")
.Sheets("Mat").Range("A:A").Copy Destination:=Mat.Range("A:A")
.Sheets("Mat").Range("B:B").Copy Destination:=Mat.Range("B:B")
.Sheets("Mat").Range("C:C").Copy Destination:=Mat.Range("C:C")
'Investition
Set Inv = ThisWorkbook.Sheets("Inv")
.Sheets("Inv").Range("A:G").Copy Destination:=Inv.Range("A:G")
'Stock
Set Stock = ThisWorkbook.Sheets("Stock")
.Sheets("Stock").Range("A:A").Copy Destination:=Stock.Range("A:A")
.Sheets("Stock").Range("B:B").Copy Destination:=Stock.Range("B:B")
.Sheets("Stock").Range("C:C").Copy Destination:=Stock.Range("C:C")
'Others
Set Others = ThisWorkbook.Sheets("Others")
.Sheets("Others").Range("A:A").Copy Destination:=Others.Range("A:A")
.Sheets("Others").Range("B:B").Copy Destination:=Others.Range("B:B")
.Sheets("Others").Range("F:F").Copy Destination:=Others.Range("D:D")
.Sheets("Others").Range("G:G").Copy Destination:=Others.Range("E:E")
.Close
End With
End If
Application.ScreenUpdating = True
End Sub


Anzeige
AW: "Werte" mit Makros kopieren
05.06.2008 12:13:00
Renee
Hi Tobi,
Ersetze die 2 Zeilen durch diese:

.Sheets("Others").Range("F:F").Copy
Others.Range("D:D").PasteSpecial Paste:=xlPasteValues
.Sheets("Others").Range("G:G").Copy
Others.Range("E:E") .PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False


GreetZ Renée

AW: "Werte" mit Makros kopieren
05.06.2008 13:33:29
Tobi
Hi Renèe,
ich bins nochmal...
vielen Dank für dein Makro:
.Sheets("Others").Range("F:F").Copy
Others.Range("D:D").PasteSpecial Paste:=xlPasteValues
.Sheets("Others").Range("G:G").Copy
Others.Range("E:E").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Ich glaub die erste Linie funktioniert. Die zweite wird nach dem ich das Makro aktiviert habe gelb markiert und es kommt der Laufzeitfehler "1004" ("Für diese aktion müssen alle verbundenen zellen die gleiche größe haben")
In der Datei von der ich kopieren ist die zeile 2 eine verbundene zelle (von A bis AR). Geht das Makro deshalb nicht? kann man diese zelle umgehen? und erst z.B. ab zelle 3 kopieren?
Vielen Dank im Voraus für deine Hilfe. Allein würde ich das nie hinbekommen.
Hab unten nochmal das gesamte Marko reinkopiert:
'Daten aus PlaTo kopieren

Sub LoadButton_Click()
Dim Prod As Worksheet
Dim filetoopen As String
Application.ScreenUpdating = False
filetoopen = Application.GetOpenFilename("Excel Files (*.xls), *.xls")
If filetoopen  "False" And filetoopen  "Falsch" And filetoopen  "" Then
Workbooks.Open filetoopen
With ActiveWorkbook
'Produktion
Set Prod = ThisWorkbook.Sheets("Prod")
.Sheets("Prod").Range("A:A").Copy Destination:=Prod.Range("A:A")
.Sheets("Prod").Range("B:B").Copy Destination:=Prod.Range("B:B")
.Sheets("Prod").Range("D:D").Copy Destination:=Prod.Range("BD:BD")
.Sheets("Prod").Range("E:E").Copy Destination:=Prod.Range("BE:BE")
.Sheets("Prod").Range("F:F").Copy Destination:=Prod.Range("BF:BF")
'Umsatz
Set Rev = ThisWorkbook.Sheets("Rev")
.Sheets("Rev").Range("A:A").Copy Destination:=Rev.Range("A:A")
.Sheets("Rev").Range("B:B").Copy Destination:=Rev.Range("B:B")
.Sheets("Rev").Range("C:C").Copy Destination:=Rev.Range("C:C")
'Material
Set Mat = ThisWorkbook.Sheets("Mat")
.Sheets("Mat").Range("A:A").Copy Destination:=Mat.Range("A:A")
.Sheets("Mat").Range("B:B").Copy Destination:=Mat.Range("B:B")
.Sheets("Mat").Range("C:C").Copy Destination:=Mat.Range("C:C")
'Investition
Set Inv = ThisWorkbook.Sheets("Inv")
.Sheets("Inv").Range("A:G").Copy Destination:=Inv.Range("A:G")
'Stock
Set Stock = ThisWorkbook.Sheets("Stock")
.Sheets("Stock").Range("A:A").Copy Destination:=Stock.Range("A:A")
.Sheets("Stock").Range("B:B").Copy Destination:=Stock.Range("B:B")
.Sheets("Stock").Range("C:C").Copy Destination:=Stock.Range("C:C")
'Others
Set others = ThisWorkbook.Sheets("others")
.Sheets("others").Range("A:A").Copy Destination:=others.Range("A:A")
.Sheets("others").Range("B:B").Copy Destination:=others.Range("B:B")
.Sheets("others").Range("F:F").Copy
others.Range("D:D").PasteSpecial Paste:=xlPasteValues
.Sheets("others").Range("G:G").Copy
others.Range("E:E").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
.Close
End With
End If
Application.ScreenUpdating = True
End Sub


Anzeige
AW: "Werte" mit Makros kopieren
05.06.2008 13:57:00
Tobi
hi,
ich hab jetzt einfach die verbunden Zellen gelöscht.
Jetzt funktioniert das Makro super!!!!!
Vielen Dank für deine Hilfe. Bin echt froh, dass es so gut klappt. Danke!
Gruß
tobi

AW: "Werte" mit Makros kopieren
05.06.2008 11:36:00
Worti
Hallo,
leider funktioniert PasteSpecial nicht mit Destination, weiß der Teufel warum. Du mußt es in 2 Schritten machen:
.Sheets("Data").Range("A:A"). Copy
Others.Range("A:A").PasteSpecial Paste:=xlPasteValues
Gruß Worti

AW: "Werte" mit Makros kopieren
05.06.2008 11:58:29
Tobi
Hallo ihr beiden,
Vielen Dank schon mal für euere Antworten. Leider funktioniert das Makro nicht. Ich habe euch vergessen zu sagen, dass es sich um 2 verschiedene Exceltabellen handelt. Vielleicht geht es darum nicht? Anbei schicke ich euch mal mein komplettes bisheriges Makro (bei den fett gedruckten Zeilen würde ich gerne nur die Werte kopieren):
'Daten aus PlaTo kopieren

Sub LoadButton_Click()
Dim Prod As Worksheet
Dim filetoopen As String
Application.ScreenUpdating = False
filetoopen = Application.GetOpenFilename("Excel Files (*.xls), *.xls")
If filetoopen  "False" And filetoopen  "Falsch" And filetoopen  "" Then
Workbooks.Open filetoopen
With ActiveWorkbook
'Produktion
Set Prod = ThisWorkbook.Sheets("Prod")
.Sheets("Prod").Range("A:A").Copy Destination:=Prod.Range("A:A")
.Sheets("Prod").Range("B:B").Copy Destination:=Prod.Range("B:B")
.Sheets("Prod").Range("D:D").Copy Destination:=Prod.Range("BD:BD")
.Sheets("Prod").Range("E:E").Copy Destination:=Prod.Range("BE:BE")
.Sheets("Prod").Range("F:F").Copy Destination:=Prod.Range("BF:BF")
'Umsatz
Set Rev = ThisWorkbook.Sheets("Rev")
.Sheets("Rev").Range("A:A").Copy Destination:=Rev.Range("A:A")
.Sheets("Rev").Range("B:B").Copy Destination:=Rev.Range("B:B")
.Sheets("Rev").Range("C:C").Copy Destination:=Rev.Range("C:C")
'Material
Set Mat = ThisWorkbook.Sheets("Mat")
.Sheets("Mat").Range("A:A").Copy Destination:=Mat.Range("A:A")
.Sheets("Mat").Range("B:B").Copy Destination:=Mat.Range("B:B")
.Sheets("Mat").Range("C:C").Copy Destination:=Mat.Range("C:C")
'Investition
Set Inv = ThisWorkbook.Sheets("Inv")
.Sheets("Inv").Range("A:G").Copy Destination:=Inv.Range("A:G")
'Stock
Set Stock = ThisWorkbook.Sheets("Stock")
.Sheets("Stock").Range("A:A").Copy Destination:=Stock.Range("A:A")
.Sheets("Stock").Range("B:B").Copy Destination:=Stock.Range("B:B")
.Sheets("Stock").Range("C:C").Copy Destination:=Stock.Range("C:C")
'Others
Set Others = ThisWorkbook.Sheets("Others")
.Sheets("Others").Range("A:A").Copy Destination:=Others.Range("A:A")
.Sheets("Others").Range("B:B").Copy Destination:=Others.Range("B:B")
.Sheets("Others").Range("F:F").Copy Destination:=Others.Range("D:D")
.Sheets("Others").Range("G:G").Copy Destination:=Others.Range("E:E")
.Close
End With
End If
Application.ScreenUpdating = True
End Sub


Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige