Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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)
Antworten 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
Antworten Top


Gehe zu:


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