Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Nur Werte einer Tabelle auswählen und kopieren!





Frage

Hi Leute! Schon wieder ich :-)! Ich habe ein Problem, bei dem ich schon einiges probiert habe, aber keine Lösung finde, die funktioniert. Ich muss aus einer Datei mit ca 60 Tabellenblättern (je 1100 Zeilen; Größe ca 25MB) nur die Zellen/Bereiche auswählen, in denen nur Werte, also keine Formeln..., stehen und diese dann in eine (vom Aufbau her) fast identische Datei kopieren. Problem ist auch, dass die Bereiche nicht zusammenhängend sind! Weiteres Problem ist die Größe der Datei. Ich wollte einfach die kompletten Daten mit Hilfe eines Arrays kopieren; das schafft aber mein PC nicht :-)...auch "Stückelung" funktioniert schlecht (dauert zu lange und ist zu unübersichtlich)! Am besten wäre es, wenn ich einfach die kompletten Daten kopieren könnte; es dürfen aber keine Verknüpfungen zur alten Datei hergestellt werden. Da die Tabellenblätter aber über Formeln miteinander verbunden sind, wird bei einfacher Kopie Verknüpfung zur alten Datei hergestellt. Wie schon beschrieben, wird das ganze für arrays aber viel zu groß. Wäre super, wenn ihr ein paar Tipps für mich hättet! Da ich in VBA immer noch Anfänger bin, bin ich für Tipps in jede Richtung dankbar! Vielleicht gibt es ja auch noch nen Weg, auf den ich nicht gekommen bin! Schonmal vielen Dank für Eure Mühen und Hilfe!!! Grüße, Richie

Antwort 1 von JoeKe

Hallo Richie,

folgender Code kopiert von Tabelle1 aus Spalte B die Werte nach Tabelle2 Spalte A . Zellen mit Formeln werden nicht mit kopiert.

Option Explicit

Sub Werte_kopieren()
Application.ScreenUpdating = False
Worksheets("Tabelle1").Range("B:B").SpecialCells(xlCellTypeConstants, 3).Copy
Worksheets("Tabelle2").Range("A1").PasteSpecial
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub


Gruß

JöKe

Antwort 2 von Richie200978

Hi JöKe!

Mal wieder vielen Dank für die schnelle Antwort!!!
Das geht in die richtige Richtung; ich hab´ jetzt nur noch ein Problem:
In der Spalte stehen Werte und Formeln untereinander; es sollen nur die Zellen, in denen Werte stehen kopiert werden; diese Werte sollten aber genau an derselben Stelle in der neuen Datei eingefügt werden, an der Sie auch in der alten Datei waren.
Bei deinem Lösungsvorschlag werden die Zellen mit den Formeln ignoriert und der Rest (Werte) dann "zusammengeschoben";
gibt´s dafür auch ne Lösung?

Viele Grüße,
Richie

Antwort 3 von JoeKe

Hallo Richie,

so:

Sub werte_kopieren2()
Dim rngZelle As Range, Ziel As String
Application.ScreenUpdating = False
Worksheets("Tabelle1").Range("B:B").SpecialCells(xlCellTypeConstants, 3).Select
For Each rngZelle In Selection
rngZelle.Copy
Ziel = rngZelle.Address
Worksheets("Tabelle2").Range(Ziel).PasteSpecial
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub


Gruß

JöKe

Antwort 4 von Richie200978

Hi JöKe!

Du Bist meine Rettung!!! Vielen Dank!!!
...funktioniert einwandfrei!

Viele Grüße,
Richie

Antwort 5 von JoeKe

Hallo Richie,

dafür nich ;-)

Antwort 6 von JoeKe

Hallo,

noch eine kleine Verbesserung:

Sub werte_kopieren2()
Dim rngZelle As Range
For Each rngZelle In Worksheets("Tabelle1").Range("B:B"). _
SpecialCells(xlCellTypeConstants, 3)
Worksheets("Tabelle2").Range(rngZelle.Address) = rngZelle
Next
End Sub



Gruß

JöKe

Antwort 7 von Richie200978

Hallo JöKe!

Funktioniert sehr gut, muss jetzt nur ausprobieren, ob es auch für die ganze Datei läuft. Für ein Tabellenblatt dauert die Übernahme ca 45 sec. Ich muss allerdings ca 50 Blätter übernehmen.

Schau mer mal ;-)!

Viele Grüße,
Richie

Antwort 8 von woher

Hallo,
die beschriebene Aufgabe könnte glaube ich wesentlich schneller bewältigt werden, wenn zunächst alle Formeln (per Makro) aus der Datei gelöscht werden.
Zunächst Dateikopie speichern
Dann im Menue "Bearbeiten"
"Gehe zu"
"Inhalte"
die Option "Formeln" markieren
O.K.
und "Entfernen" drücken.
Dies könnte dann noch per Makro für alle Tabellenblätter der Datei ausgeführt werden. Anschießend sollte das kopieren der Werte in die andere Datei erheblich schneller gehen.
Dann die Dateikopie löschen.
mfg
woher

Antwort 9 von m-o-m

Hallo JöKe,

habe ein ähnliches Problem wie Richie.

Ist es möglich in das Makro noch einen Sicherheitsabglich per SVERWEIS einzubauen? (Falls die eine Liste umsortiert wurde)

Vielen Dank.

Gruß Maik