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

Definierten Bereich nur mit Werten exportieren

Definierten Bereich nur mit Werten exportieren
11.03.2013 11:18:32
Kim-Sascha
Hallo zusammen,
ich habe hier eine mordsgroße Tabelle, die einen Haufen Formeln und Formatierungen enthält. In der wird gearbeitet. Wenn die Arbeit darin abgeschlossen ist, muss ich die ganze Tabelle in ein Fremdsystem einlesen lassen, wobei da nur die Werte, also nicht die dahinterliegenden Formeln, benötigt werden.
Momentan gehe ich hin, kopiere die ganze Tabelle, öffne eine leere Exceltabelle, gehe auf "Inhalte einfügen" und füge "Werte" ein. Das funktioniert tadellos.
Nur müsste man das doch mittels Makro automatisieren könne, oder? Ich habe die Ursprungstabelle jetzt mal komplett markiert und Ihr einen Namen zugewiesen. Und da verlassen mich die Ideen schon. Optimal wäre, wenn ich jetzt in der Ursprungstabelle einen Button hätte, der auf Knopfdruck den definierten Bereich nimmt und genau das tut, was ich oben beschrieben habe, also den Bereich in eine leere Tabelle einfügt, dabei jedoch nur die Werte einfügt.
Ich hoffe, ich konnte das halbwegs sinnig rüberbringen und jem,and kann damit was anfangen ;)
Grüße,
Kim

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Definierten Bereich nur mit Werten exportieren
11.03.2013 11:39:10
Matze
Hallo Kim-Sascha,
schon mal mit dem Makrorecorder versucht ?
Vermutlich soll die Neue Mappe im selben Verzeichnis liegen und auch gleich gespeichert werdn oder wird die weiter verarbeitet?
Matze

AW: Definierten Bereich nur mit Werten exportieren
11.03.2013 11:41:18
Klaus
Hallo Kim,
Momentan gehe ich hin, kopiere die ganze Tabelle, öffne eine leere Exceltabelle, gehe auf "Inhalte einfügen" und füge "Werte" ein. Das funktioniert tadellos.
Nur müsste man das doch mittels Makro automatisieren könne, oder?

Der Makrorekorder ist dein Freund! Stelle ihn an, mache genau das beschriebene. Es kommt dabei heraus:
Sub Macro1()
' Macro1 Macro
Cells.Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Das ganze auf einen Button, fertig.
Wenn du ganz ordentlich sein willst, lässt sich der o.g. Code auch nochmal optimieren (ist halt "nur" Rekordercode).
Ein optimalerer Code könnte zB so aussehen, effizienter aber weniger intuitiv nachvollziehbar:
Sub Macro1()
ActiveSheet.Copy
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
End Sub

(Trick 17: durch das .copy des ganzen sheets wird der Focus gewechselt, in der zweiten Zeile ist also bereits das neue Blatt "active sheet". das .value = .value überschreibt dann die Formelinhalte mit Werten. UsedRange begrenzt das ganze auf beschriebenene Zellen, damit nicht unnötig Rechenzeit verbraten wird)
Grüße,
Klaus M.vdT.

Anzeige
AW: Definierten Bereich nur mit Werten exportieren
11.03.2013 11:51:37
Kim-Sascha
Autsch, klar der Makrorekorder. Da hätte ich auch drauf kommen können, vielen Dank ;)
Damit bin ich auf der richtigen Spur. Die Optimierungsmöglichkeiten schaue ich mir dann an, wenn es läuft.
Grüße,
Kim

Danke für die Rückmeldung! owT.
11.03.2013 11:58:20
Klaus
.

Doch noch mal eine Nachfrage
11.03.2013 14:01:56
Kim-Sascha
Ich muss doch nochmal kurz nachfragen. Und zwar habe ich den Makrorekorder-Code jetzt optimiert und es klappt auch. Allerdings wollte ich jetzt einen zweiten Bereich aus einer zweiten Tabelle kopieren und in der Zieltabelle unten anfügen. Bei dem zweiten "Füge kopierten Bereich an definierter Stelle ein" meldet mir das Ding aber einen Fehler. Kommentiere ich einen der beiden Einfügen-Befehle aus, klappt alles. Nur zweimal hintereinander kopieren und einfügen, das will er anscheinend nicht. Weiss jemand, wo der Fehler liegt?
Sub EXPORT()
' EXPORT Makro
' Tastenkombination: Strg+Umschalt+E
'   Wähle die Zieltabelle aus
Sheets("EXPORT").Select
'   Markiere die gesamte Tabelle
Cells.Select
'   Lösche alle eventuell vorhandenen Daten
Selection.ClearContents
'   Kopiere aus dem Tabellenblatt 1 den gesamten definierten Bereich "Bereich1"
Worksheets("Tabellenblatt1").Range("Bereich1").Copy
'   Füge den kopierten Bereich an Position A1 in die Zieltabelle ein (Nur Werte und  _
Zahlenformate)
Worksheets("EXPORT").Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
'   Kopiere aus dem Tabellenblatt 2 den gesamten definierten Bereich "Bereich2"
Worksheets("Tabellenblatt2").Range("Bereich2").Copy
'   Füge den kopierten Bereich an Position A2000 in die Zieltabelle ein (Nur Werte und  _
Zahlenformate)
Worksheets("EXPORT").Range("A2000").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End Sub

Anzeige
AW: Doch noch mal eine Nachfrage
11.03.2013 14:14:16
Klaus
Hi,
der Makrocode ist sauber. Habs grad getestet, bei mir funktionierts.
Sind deine "Bereich1" "Bereich2" Namen sicher richtig? Hast du verbundenene Zellen? Umfassen deine Bereiche vielleicht ganze Zeilen oder Spalten?
Kannst du einfach die Datei hochladen? :-)
Grüße,
Klaus M.vdT.

AW: Doch noch mal eine Nachfrage
11.03.2013 14:21:06
Kim-Sascha
Die Bereichsnamen passen, habe ich gerade nochmal neu festgelegt. Verbundene Zellen sind keine drin. Wenn Du ganze Zeilen bzw. Spalten schreibst, meinst Du komplett die Zeile 2 bzw. komplett die Spalte A? Nein, sowas ist nicht drin.
Hochladen wäre nicht ganz so gut, da sensible Daten enthalten sind. Ich schau mir das Ganze heute Abend nochmal in Ruhe an, vielleicht finde ich den Fehler ja noch. Danke auf jeden Fall schonmal für die Hilfe bis hierher ;)

Anzeige
AW: Doch noch mal eine Nachfrage
11.03.2013 14:45:45
Klaus
Hi,
Hochladen wäre nicht ganz so gut, da sensible Daten enthalten sind
Na und? Zufallszahlen drüber, Namen durch "Max Mustermann" ersetzen, alles was nicht direkt zum Problem gehört löschen.
Grüße,
Klaus M.vdT.

AW: Doch noch mal eine Nachfrage
11.03.2013 14:43:48
Kim-Sascha
Bin jetzt schon ein wenig schlauer. Das Problem liegt anscheinend bei der Bereichsangabe für das zweite Einfügen. Mit Worksheets("EXPORT").Range("A2000").PasteSpecial Paste:=xlPasteValuesAndNumberFormats klappt es nicht, wenn ich den Bereich aber auf A1 setze, funktionierts. Nur dass er mir dann natürlich die zuerst eingefügten Daten überschreibt.

Anzeige
Ha! Vermutung!
11.03.2013 14:47:39
Klaus
Hallo Kim,
in A1 kannst du eigentlich alles einfügen (das behandelt Excel fast, als hättest du .cells ausgewählt).
Wenn es bei anderen Bereichen klemmt, liegt das fast immer an unterschiedlicher Spalten/Zeilenanzahl oder verbundenen Zellen. Weiter oben schreibst du, sowas hast du nicht - ich würd aber ne Wette annehmen dass doch!
Grüße,
Klaus M.vdT.

AW: Ha! Vermutung!
11.03.2013 15:00:16
Kim-Sascha
Hi Klaus,
Ich schwöre dass da nix verbundenes ist. Und die Spaltenanzahl ist identisch. Die Zeilenanzahl natürlich nicht, aber das kann ja kein Problem sein. Ich kopiere ja erst Bereich1 mit X Zeilen, füge ihn ein und kopiere dann Bereich 2 mit Y Zeilen.
Dateiupload klappt nicht, weil das ganze Monster über 3 MB hat und hier 300 kb Maximum sind. Kann aber die Datei auch nicht verkleinern, weil die Struktur vorgegeben ist.
Ich werde heute Abend mal versuchen, den Range-Bereich in der zweiten Einfüge-Anweisung durch "finde letzte Zeile und füge da ein" zu ersetzen. Da muss ich mich aber erst noch weiter einlesen.

Anzeige
AW: Ha! Vermutung!
11.03.2013 15:11:38
Kim-Sascha
Nachtrag: Ich habs. Wenn ich im zu kopierenden Bereich die Zellen von bis angebe klappts. Warum auch immer. Der benannte Bereich umfasste genau diese Zellen. Damit kann ich aber leben. Danke nochmal für die Hilfe und Grüße,
Kim

Danke für die Rückmeldung! owT.
11.03.2013 15:33:41
Klaus
.

AW: Definierten Bereich nur mit Werten exportieren
11.03.2013 11:58:46
Rudi
Hallo,
kopiert das aktive Blatt:
Sub aaa()
Application.ScreenUpdating = False
ActiveSheet.Copy
With ActiveSheet
.Cells.Copy
.Cells(1, 1).PasteSpecial xlPasteValues
.Parent.SaveAs "c:\temp\" & .Name 'anpassen
.Parent.Close
End With
End Sub

Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige