Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
420to424
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Werte kopieren in VBA
Clemens
Hallo,
ich versuche gerade einen Kopiervorgang in VBA zu programmieren. Zu diesem Zweck habe ich zwei Schleifen gesetzt, die dazu dienen sollen, eine Spalte in die nächste Spalte zu kopieren. Dabei ermittele ich den zu kopierenden Wert durch die Formel "value = cells(i,ii).value". Mein Problem ist nun, dass auch Formeln kopiert werden. Es sollen aber nur die Werte (im Sinne "paste special, values") kopiert werden. Ich bin mir sicher, dass es da eine Möglichkeit gibt, die eine Leichtigkeit für den versierten VBA Kenner darstellt. Nur gelingt es mir Laien nicht, diese Möglichkeit herauszufinden...
Besten Dank für die Hilfe,
Clemens Meyer

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Werte kopieren in VBA
OliveR
Hi Clemens,
mit Cells(i,ii).PasteSpecial Paste:=xlValues sollte es klappen.
Gruß Oliver
AW: Werte kopieren in VBA
Clemens
Hi Oliver,
besten Dank für Deine Antwort. Doch leider bewirkt sie einen Compiler Error. Vielleicht zur Verdeutlichung meines Problems die ausführliche bisherige Version:
value = Cells(i, ii).Values
s = ii + 1
Cells(i, s).value = value
Besten Dank nochmals,
Clemens
AW: Werte kopieren in VBA
OliveR
Hi Clemens,
probiere entweder:
s = ii + 1
Cells(i,s) = Cells(i,ii)
oder
1. value sollte nicht als Variable genutzt werden.
2. Die Zelle erst kopiert werden, wenn es funktionieren soll
In etwa so:

Sub test()
value = Cells(i, ii).Values
s = ii + 1
Cells(i, ii).Copy
Cells(i, s).PasteSpecial Paste:=xlValues
End Sub

Gruß
OliveR
Anzeige
AW: Werte kopieren in VBA
Clemens
Hi nochmal,
allerbesten Dank für Deine Hilfe. Jedoch führt das Kopieren der Formeln nicht zu einer Ausgabe der Werte sondern zur Ausgabe des Wertes 0. Ich bin schon so verweifelt, dass ich mittlerweile die Schleife aufgegeben habe und mit copy/paste arbeite. Eleganter wäre natürlich die Schleife. Vielleicht hast du noch eine Idee. Ich habe mal die Schleife angefügt. Dabei befinden sich die Formeln in der Spalte 5, während in den Spalten 4 sowie 6 bis 8 Werte stehen. Nach dem roll forward soll die Spalte 4 ausgenullt werden...
For ii = 8 To 4 Step -1
For i = 15 To 245
If Cells(i, ii).value = "" Then GoTo sprung
If ii = 4 Then GoTo nullen
s = ii + 1
Cells(i, ii).Copy
Cells(i, s).PasteSpecial Paste:=xlValues
nullen:
If i = 145 Then GoTo sprung
Cells(i, 4).value = "0"
sprung:
Next
Next
Allerbesten Dank,
Clemens
Anzeige
AW: Werte kopieren in VBA
OliveR
Hallo Clemens,
ich füge Dir hier mal den Code rein. Könnte aber nicht laufen, da ich nicht ganz verstehe, was Du mit dem Code erreichen willst. Wenn Du genau erklären könntest, was Du genau erreichen willst, könnte ich Dir wahrscheinlich exakter helfen.
Verstehe ich richtig, dass Du die Werte von Spalte 6-8 in die Spalten 7-9 schieben willst und die Werte aus Spalte 5 von in Spalte 6. Die Formeln in Spalte 5 belassen und die Spalte 4 "Nullen" bzw. leeren willst? Wenn ja, dann probier dieses

Sub test()
Range(Cells(15, 6), Cells(254, 6)).Insert shift:=xlToRight
Range(Cells(15, 5), Cells(254, 5)).Copy
Cells(15, 6).PasteSpecial Paste:=xlValues
Range(Cells(15, 4), Cells(254, 4)).Clear
End Sub

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige