Aus Range nur Zellwerte per VBA kopieren
#1
Hallo Werte Excel-Freunde,

Ich habe ein Problem beim kopieren von Zellinhalten und deren Formatierungen via VBA. Ich habe bereits ein funktionieren Code zum Kopieren eines Zellbereiches vorhanden. Im konkreten Fall:

Code:
Sub Hinzufügen()

Dim lngZiel As Long
Dim lngLetzte As Long
Dim rngBereich As Range

  lngLetzte = Cells(Rows.Count, 28).End(xlUp).Row
  Set rngBereich = ActiveSheet.Range("U40:AB" & lngLetzte + 1)
       With ActiveSheet.UsedRange
       lngZiel = .Cells(.Rows.Count, 14).End(xlUp).Row + 7
       If lngZiel < 40 Then lngZiel = 40
''      wenn nur die eingeblendeten Zeilen kopiert werden sollen
       rngBereich.Copy .Range("L" & lngZiel)
       Application.CutCopyMode = False
  End With
End Sub

Leider werden mir aber anstatt der Werte, die Formel aus dem zu kopierenden Bereich kopiert und führt nach dem einfügen natürlich zu Zellbezugsfehlern. Es sollen aber nur die Werte im Zielbereich auftauchen. Habe schon andere Varianten gefunden (SpecialPaste, Destination, etc.) - [Wobei hier auch eine Destination .Range("L" & IngZiel) verwendet wird], konnte diese aber nicht zum laufen bringen.

In der Testdatei ist es der Tabellenreiter "Leistungen". Die Kopierfunktion wird im selben Tabellenblatt ausgeführt.

Grüße

Hellidor


Angehängte Dateien
.xlsm   Test_Tabelle.xlsm (Größe: 75,87 KB / Downloads: 1)
Top
#2
Hallo

wie man nur die Werte kopiert das gibt einem ein aufgezeichnetes Makro wunderbar wieder
das würde dann in deinem Fall wohl so aussehen


Code:
Sub Hinzufügen()

Dim lngZiel As Long
Dim lngLetzte As Long
Dim rngBereich As Range

  lngLetzte = Cells(Rows.Count, 28).End(xlUp).Row
  Set rngBereich = ActiveSheet.Range("U40:AB" & lngLetzte + 1)
       With ActiveSheet.UsedRange
       lngZiel = .Cells(.Rows.Count, 14).End(xlUp).Row + 7
       If lngZiel < 40 Then lngZiel = 40
''      wenn nur die eingeblendeten Zeilen kopiert werden sollen
       rngBereich.Copy
       .Range("L" & lngZiel).PasteSpecial Paste:=xlPasteValues
       Application.CutCopyMode = False
  End With
End Sub

mal davon abgesehen, dass du dir im aktiven Tabellenblatt die With-Anweisung sparen kannst

MfG Tom
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste