Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

durch VBA eine Zelle kopieren - aber nicht die Formel sondern nur den WERT





Frage

Hallo! Noch ein kleines Problem. Mein VBA kopiert wie er soll meine Daten von TB1 nach TB2. Nun möchte ich aber, das er z.B. die Daten in SpB als Wert kopiert und nicht die dort angegebene Formel. Hier der Code: [code]Sub zusammenfassenkm() Dim maxrow As Long, i As Long, j As Long, k As Long ´Dim currow As Long ´ entbehrlich Application.ScreenUpdating = False Sheets("Fahrtkosten").Select Range("B9:L800").ClearContents Sheets("Fahrtkosten").Select ´currow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1 ´ Fehler! Spalte A ist leer, deshalb ´currow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1 ´ entbehrlich j = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row - 4 If j < 4 Then j = 4 ´zur Sicherheit, damit Zielzeile > 8 Sheets("TB2006").Select maxrow = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row ´j = currow - 5 ´ entbehrlich k = 5 For i = 5 To maxrow If UCase(Sheets("TB2006").Range("J" & CStr(i))) = "J" Then ´Daten von Spalte G(Name) nach G (Name) Sheets("TB2006").Range("G" & CStr(i)).Copy _ Destination:=Sheets("Fahrtkosten").Range("G" & CStr(k + j)) ´Daten von Spalte M(Abfahrt) nach H (Abfahrt) Sheets("TB2006").Range("M" & CStr(i)).Copy _ Destination:=Sheets("Fahrtkosten").Range("H" & CStr(k + j)) ´Daten von Spalte N(Ziel) nach I (Ziel) Sheets("TB2006").Range("N" & CStr(i)).Copy _ Destination:=Sheets("Fahrtkosten").Range("I" & CStr(k + j))[b].PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False[/b] [i] ´PasteSpecial funktioniert heir nicht - gibt Fehler zurück! Was mache ich falsch´[/i] k = k + 1 End If Next i Sheets("Fahrtkosten").Select Application.ScreenUpdating = True End Sub[/code]

Antwort 1 von JoeKe

Hallo MiMa1979,

das liegt daran das du mit Destination:= und mit Paste arbeiten willst.

Ändere das mal so:

Sheets("TB2006").Range("N" & CStr(i)).Copy
Sheets("Fahrtkosten").Range("I" & CStr(k + j)).PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False


MfG

JöKe

Antwort 2 von CaroS

MiMa1979!

Zitat:
Nun möchte ich aber, das er z.B. die Daten in SpB als Wert kopiert und nicht die dort angegebene Formel.


Manchmal wäre es besser wenn man wüsste, was der andere wirklich will. Willst Du die Daten nur z.B. in Spalte B kopieren oder tatsächlich, willst Du sie von oder nach Spalte B kopieren oder soll das ganze in Spalte N stattfinden?

Du hast in Modul 1 in Sub zusammenfassen() übrigens 3 funktionierende Beispiele für das Kopieren von Werten.

Gruß,
CaroS

Antwort 3 von MiMa1979

Also das mit Spalte B war nur ein Beispiel. Tatsächlich will ich von TB2006 Spalte N in FAhrtkosten Spalte I kopieren, aber nur den Wert von Spalte N und nicht die gesamt Formel.

Jetzt probiere ich ertmal den vorschlag von JöKe aus!

DANKE, für eure Geduld und eurem Durchblick!

Antwort 4 von CaroS

MiMa1979,

ich kann das nur noch einmal wiederholen, dass Du - selbst in Deiner Datei - in Modul 1 in Sub zusammenfassen() unter ´Daten von Spalte T(Abk TGB) nach E (Dienstart) ein funktionierendes Beispiel für das Kopieren von Werten ohne Formel hast.

Und je eher Du Dir die neue Version der Datei runterladen würdest (siehe https://supportnet.de/threads/1351676), desto mehr unnötige Mehrarbeit kannst Du Dir sparen, die Neuerungen aus dieser Datei und aus der Datei, die Du offenbar gerade selbst bearbeitest, später in einer einzigen Datei zusammenzuführen.

Das was Du gerade machst nennt man Parallelarbeit, und sowas ist zumindest uneffektiv. Immerhin habe ich auch eine gewisse Arbeit in die Lösung Deiner Probleme gesteckt!

CaroS