VBA Code kopiert Formel anstelle eines Wertes

josef24

Erfahrenes Mitglied
Hallo und einen schönen Sonntag. Ich hätte mal eine Frage zu einem Kopiervorgang. Ich kopiere Spalten aus Datei1 (keine Formeln in den Spalten) nach Datei2 und dort
erscheint in Spalte "G" eine Formel mit (#NV) nachdem der Kopiervorgang abgeschlossen ist. Wie kann plötzlich eine Formel "kopiert" werden, die doch in Datei1 gar nicht vorhanden ist? Beim Vorgang erscheint kurz der eigentliche Wert, und danach kommt die Formel wohl mit dem Ergebnis #NV. Stelle mal den Code hier ein.
Hat hier vielleicht jemand eine Idee, wie man den Code berichtigen kann, um ein korrektes Ergebnis zu erhalten. Gruß Josef

Visual Basic:
 Option Explicit                                     ' Variablendefinition erforderlich
Public Bovor As Boolean                             ' Tabelle vorhanden
'Für diese Prozedur müssen beide betroffenen Dateien geöffnet sein.
' Hier wird z. B. eine komplette Spalte von Spalte kopieren nach Vergleich2 kopieret.
Sub Test1()
' With Worksheets("inkopie.xlsm")
    ' Workbooks("ArbTab").Range("A1:1280").ClearContents  ' LÖSCHEN der alten Daten???????
    ' End With
    Dim Datei1 As Worksheet
    Dim Datei2 As Worksheet
        Set Datei1 = Workbooks("inkopie.xlsm").Sheets("ArbTab")
        Sheets("ArbTab").Range("A2:I252").ClearContents
        ' Set Datei1 = Workbooks("ArbTab")
        '("Hier muß die Originaldatei eingefügt werden")
        ' Set Datei2 = Workbooks("1tes quartal 2020.xlsm").Sheets("ArbTab")
        Set Datei2 = Workbooks("auskopie.xlsx").Sheets("Tabelle1")
        '("Hier muß die Einfügedatei eingefügt werden")
    Datei2.Range("A1:I252").Copy Datei1.Range("A1:I252") ' .PasteSpecialPaste:=xlPasteValues
     Application.DisplayAlerts = False
    ' Datei2.Close True
' Application.DisplayAlerts = True

End Sub
 
Zuletzt bearbeitet von einem Moderator:
Danke für dein Interesse. Habe den Code leicht abgeändert, was aber am Ergebnis nichts ändert.
Hatte angenommen mit folgendem wäre das Einfügen der Daten erledigt.

Datei2.Range("A1:I252").Copy
Datei1.Range("A1:I252").PasteSpecial Paste:=xlPasteValues

Gruß Josef

Hier mein aktualisiertes:
Visual Basic:
Sub Test1()
    Dim Datei1 As Worksheet
    Dim Datei2 As Worksheet
        Set Datei1 = Workbooks("inkopie.xlsm").Sheets("ArbTab")
        '** Application.Cursor = xlWait
        Sheets("ArbTab").Range("A2:I252").ClearContents
        '("Hier muß die Originaldatei eingefügt werden")
        ' Set Datei2 = Workbooks("1tes quartal 2020.xlsm").Sheets("ArbTab")
         Set Datei2 = Workbooks("auskopie.xlsx").Sheets("Tabelle1")
        '("Hier muß die Einfügedatei eingefügt werden")
                '        Worksheets("Datei2").Range("A1:I280").Copy
                ' Worksheets("Datei1").Range("A1").PasteSpecial _
                ' Paste:=xlPasteValues
        Datei2.Range("A1:I252").Copy
        Datei1.Range("A1:I252").PasteSpecial Paste:=xlPasteValues
'Application.CutCopyMode = False
             Application.DisplayAlerts = False
            ' Datei2.Close True
'** Application.DisplayAlerts = True
'** Application.Cursor = xlDefault
End Sub
 
Zuletzt bearbeitet von einem Moderator:
Hallo zusammen, muss noch ergänzen, dass besagte Spalte ja in dem aktualisierten erscheint, leider aber mit einer Formel hinterlegt ist. Die Bemerkung "Du fügst aber nirgends etwas ein" verstehe ich nicht so ganz.
Die Spalten werden mit Ausnahme einer doch richtig gefüllt! Gruß Josef
 
Im ersten Code hast du nur ein copy drin gehabt, aber kein paste.

im neuen Code sehe ich grad kein Fehler.
 
Danke erstmal. Habe gerade nochmal gestartet und habe das gleiche Ergebnis. Warum kopiert der Code denn eine Formel in eine neue Spalte wo gar keine Formel, auch in der ursprünglichen Spalte (Datei), vorhanden ist? Und warum nur in einer Spalte? Wo könnte ich da noch ansetzen um zu einem richtigen Ergebnis zu kommen. Ist meine Methode denn ganz falsch? Gruß Josef
 
Stellst du uns mal die Dateien zur Verfügung?
Weil der Code sieht richtig aus und sollte keine Formeln kopieren. Jetzt muss man die Dateien selber mal betrachten.

Ps.
Visual Basic:
'Warum?
Sheets("ArbTab").Range("A2:I252").ClearContents
'und nicht
Datei1.Range("A2:I252").ClearContents
 
Zurück