Tabs nur Werte kopieren + Schleife

Bild

Betrifft: Tabs nur Werte kopieren + Schleife
von: Andreas
Geschrieben am: 22.04.2015 11:10:59

Hallo zusammen,
ich benötige mal wieder eure Hilfe.
Kurz und bündig erklärt, was passieren soll, bei ButtonClick:
- Die Tabs "Sonne", "Mond" und "Sterne" sollen in eine neue Arbeitsmappe kopiert werden.
- Es sollen aber nur die Werte der Zellen kopiert werden, nicht die Formeln.
- Danach soll auf dem kopierten Tab "Sterne" eine Abfrage laufen, die alle Zeilen komplett löscht, in denen in Spalte A eine 0 steht
- Danach soll die Datei an einem bestimmt Pfad mit Dateiname aus einer Zelle gespeichert werden (das bekomm ich aber glaub ich alleine hin)
Ich befürchte, dass dies eine sehr aufwendige Sache ist, hoffe trotzdem, dass mir jemand helfen kann.
Dankeschön!

Bild

Betrifft: AW: Tabs nur Werte kopieren + Schleife
von: Andreas
Geschrieben am: 22.04.2015 15:55:24
Ich hab mich inzwischen schon etwas weiter durchgeschlagen.
Den Punkt mit dem Zeilen löschen können wir schonmal abhaken.
Ich habe es auch schon hinbekommen, die drei Tabellenblätter zu kopieren. Ganz einfach mit dem Code:
Sheets(Array("Sonne", "Mond", "Sterne")).Copy
Nur leider bekomme ich es nicht hin, dass nur die Werte kopiert werden.
Kann mir hierzu jemand helfen?

Bild

Betrifft: .PasteSpecial xlPasteValues
von: KlausF
Geschrieben am: 22.04.2015 19:00:17
Hallo Andreas,
für Sheet Sonne z.B.
With Worksheets("Sonne").UsedRange
.Cells.Copy
.Cells.PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
Gruß
Klaus

Bild

Betrifft: AW: Tabs nur Werte kopieren + Schleife
von: Daniel
Geschrieben am: 22.04.2015 19:35:37
Hi
das Sheets.copy kopiert zunächst einmal alles, dh Werte, Formeln, Formate, aber auch die Druckeinstellungen und ggf vorhandere Tabellenblattmakros
du müsstest also hinterher nochmal mit einer Schleife drüber gehen und in den Blättern die Formeln durch ihren Wert ersetzen.
sieht als Code so aus:

Sub SheetCopy()
Dim sh As Worksheet
Sheets(Array("Sonne", "Mond", "Sterne")).Copy
With ActiveWorkbook
    '--- Formeln durch Werte ersetzen
    For Each sh In .Worksheets
        sh.UsedRange.Copy
        sh.UsedRange.PasteSpecial xlPasteValues
    Next
    '--- in Blatt Sterne Zeilen mit 0 in Spalte A löschen
    With .Sheets("Sterne").UsedRange
        With .Columns(.Columns.Count + 1)
            .FormulaR1C1 = "=If(RC1=0,0,Row())"
            .Cells(1, 1).Value = 0
            .EntireRow.RemoveDuplicates .Column, xlNo
            .ClearContents
        End With
    End With
    '--- Speichern
    .SaveAs "bestimmter Pfad und Dateiname"
End With
End Sub
wenn du wirklich nur die Werte haben willst (dh auch keine Formate und Druckeinstellungen) wäre es günstiger, zunächst eine leere Mappe zu erstellen und dann die Sheet-Inhalte per Schleife zu übertragen.
Gruß Daniel

Bild

Betrifft: AW: Tabs nur Werte kopieren + Schleife
von: Andreas
Geschrieben am: 23.04.2015 12:36:47
Wunderbar, funktioniert hervorragend!
Bin wie immer begeister, dass einem hier so schnell geholfen wird.
Ich danke euch!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Tabs nur Werte kopieren + Schleife"