Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: medic am Juni 15, 2012, 07:58:21 Vormittag

Titel: Office 2007: nur Inhalte einfügen
Beitrag von: medic am Juni 15, 2012, 07:58:21 Vormittag
Hallo!
ich habe folgenden Code:
Sub Kopieren()
   Dim rngZelle As Range
   Dim arrTabellen()
   Dim lngZaehler As Long
   Dim wksTab As Worksheet
   For Each rngZelle In Columns(1).SpecialCells(xlCellTypeConstants)
      If UCase(rngZelle) = "X" Then
         On Error Resume Next
         Set wksTab = Worksheets(rngZelle.Offset(0, 1).Value)
         On Error GoTo 0
         If Not wksTab Is Nothing Then
            ReDim Preserve arrTabellen(0 To lngZaehler)
            arrTabellen(lngZaehler) = rngZelle.Offset(0, 1)
            lngZaehler = lngZaehler + 1
         End If
         Set wksTab = Nothing
      End If
   Next rngZelle
   Worksheets(arrTabellen()).Copy
End Sub

Damit wird aus einem Excelsheet die mit "X" markierten Arbeitsblätter in ein neues Excelsheet kopiert.
Nun habe ich festgestellt, dass nicht die Inhalte kopiert werden, sondern eine Verknüpfung zu dem ursprünglichen Excelsheet eingefügt wird. Dadurch ändert sich auch das neue Excelsheet, wenn in dem ursprünglichen sich Werte ändern.
Wie muss der Code geändert werden, dass nur die Inhalte (nur die Werte ohne Formlen) eingefügt werden?
Titel: Antw:Office 2007: nur Inhalte einfügen
Beitrag von: Beverly am Juni 15, 2012, 08:55:27 Vormittag
Hi,

du musst im Anschluss an das Kopieren noch einmal in einer Schleife über alle kopierten Tabellenblätter laufen, die Zellen im benutzten Bereich kopieren und die Inhalte einfügen.

Bis später,
Karin
Titel: Antw:Office 2007: nur Inhalte einfügen
Beitrag von: medic am Juni 15, 2012, 09:31:01 Vormittag
????  ähm, ja....äh ??? *verwirrt*
Titel: Antw:Office 2007: nur Inhalte einfügen
Beitrag von: Beverly am Juni 15, 2012, 13:51:25 Nachmittag
Hi,

du kopierst die Tabellen insgesamt in eine neue Arbeitsmappe, also so wie sie im Original sind mitsamt den Formeln. Wenn du allerdings nur die Werte haben willst, geht das nicht unmittelbar auf dem bisherigen Weg.
Du hast generell gesehen für solch ein Vorhaben folgende Möglichkeiten:

- du erstellst in der neuen Arbeitsmappe zuerst die entsprechende Anzahl an Tabellenblättern und kopierst dann die Zellen des benutzen Bereichs jedes einzelnen Tabellenblattes der Ursprungsmappe und fügst die Inhalte in der Zielmappe mittels PasteSpecial in das betreffende Tabellenblat ein. Der Name des Tabellenblattes muss dann noch an den Namen des Tabellenblattes der Ursprungsdatei angepasst werden.

- du verwendest den bisherigen Code und wandelst einfach in einer Schleife über alle Tabellenblätter der neuen Arbeitsmappe die Formeln in Werte um

Im letzteren Fall musst du den Code nur um diese Zeilen ergänzen:

   For Each wksTab In ActiveWorkbook.Worksheets
      wksTab.UsedRange.Copy
      wksTab.UsedRange.PasteSpecial Paste:=xlValues
   Next wksTab

Bis später,
Karin
Titel: Office 2007: Antw:Office 2007: nur Inhalte einfügen
Beitrag von: medic am Juni 15, 2012, 15:30:57 Nachmittag
Danke, hat geklappt!!!
Schönes Wochenende!!!