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
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!
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
Zitat:
Nun möchte ich aber, das er z.B. die Daten in SpB als Wert kopiert und nicht die dort angegebene Formel.
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!
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
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

