![]() |
VBA "copy-paste" funktioniert nicht - Druckversion +- Office-Fragen.de (https://office-fragen.de) +-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html) +--- Forum: Excel (https://office-fragen.de/forum-2.html) +--- Thema: VBA "copy-paste" funktioniert nicht (/thread-13245.html) |
VBA "copy-paste" funktioniert nicht - Michael123 - 09.09.2020 Hallo zusammen, vorab sage ich gleich mal dass ich mich mit VBA nicht so gut auskenne. Ich habe eine Datei mit mehreren Sheets ( die im Aufbau identisch sind), in denen haufenweise Formeln sind. Diese gehören täglich in Werte umgewandelt, da sich die Dateien, aus deren die Formeln ihre Daten beziehen, laufend ändern. Bis jetzt waren es 4 Sheets und das Makro lief einwandfrei. Jetzt ist ein 5. Sheet dazu gekommen ( "KB"). Der Vorgang ist laut VBA der selbe, aber bei der Ausführung wird im 5. Sheet etwas anderes in einem anderen Bereich gemacht. Hat hierfür jemand eine Erklärung? Danke schon mal vorab für eure Hilfe Gruß Michael Sheets("M51").Select Dim zelle As Range Dim mySelection As Range Set mySelection = Selection Range(Cells(mySelection.Row + 91, mySelection.Column - 15), Cells(mySelection.Row + 91, mySelection.Column + 260)).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveSheet.Range("$A$1:$JA$2915").AutoFilter Field:=1, Criteria1:="=" Sheets("M6").Select Range(Cells(mySelection.Row + 91, mySelection.Column - 15), Cells(mySelection.Row + 91, mySelection.Column + 260)).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveSheet.Range("$A$1:$IZ$2853").AutoFilter Field:=1, Criteria1:="=" Sheets("M7").Select Range(Cells(mySelection.Row + 91, mySelection.Column - 15), Cells(mySelection.Row + 91, mySelection.Column + 260)).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveSheet.Range("$A$1:$JA$2853").AutoFilter Field:=1, Criteria1:="=" Sheets("M8").Select Range(Cells(mySelection.Row + 91, mySelection.Column - 15), Cells(mySelection.Row + 91, mySelection.Column + 260)).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveSheet.Range("$A$1:$IZ$2853").AutoFilter Field:=1, Criteria1:="=" Sheets("KB").Select Range(Cells(mySelection.Row + 91, mySelection.Column - 15), Cells(mySelection.Row + 91, mySelection.Column + 260)).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveSheet.Range("$A$1:$JA$2853").AutoFilter Field:=1, Criteria1:="=" RE: VBA "copy-paste" funktioniert nicht - Flotter Feger - 09.09.2020 Hallo, um die Formeln inPlace gegen die Werte zu tauschen, reicht schon ... Code: With Range(Cells(mySelection.Row + 91, mySelection.Column - 15), Cells(mySelection.Row + 91, mySelection.Column + 260)) Sabina RE: VBA "copy-paste" funktioniert nicht - Michael123 - 13.09.2020 Hallo Sabina, vielen Dank für deine schnelle Hilfe. Ich bin jetzt dazu gekommen das zu ändern. Ich habe die Zeilen so eingefügt wie du geschrieben hast: With Range(Cells(mySelection.Row + 91, mySelection.Column - 15), Cells(mySelection.Row + 91, mySelection.Column + 260)) .Value = .Value End With Leider hat das Makro keinen Wert umgewandelt, es bleiben die Formeln in den Feldern. Da ich mir das nicht erklären kann, hier das komplette Teil: msg = MsgBox("Ist der richtige Tag (Heute) auf M5 makiert? Sind die Angaben der LW/PA-Aufstellung in Ordnung?", vbYesNo) If msg = vbNo Then Exit Sub Else Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:= _ "S:\..." _ , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False Application.DisplayAlerts = True Application.ScreenUpdating = False Sheets("M51").Select ActiveSheet.Range("$A$1:$JB$3861").AutoFilter Field:=1 Sheets("M6").Select ActiveSheet.Range("$A$1:$IZ$3405").AutoFilter Field:=1 ActiveWindow.SmallScroll Down:=3 Sheets("M7").Select ActiveSheet.Range("$A$1:$JB$3405").AutoFilter Field:=1 Sheets("M8").Select ActiveSheet.Range("$A$1:$IZ$4413").AutoFilter Field:=1 Sheets("KB").Select ActiveSheet.Range("$A$1:$IZ$4413").AutoFilter Field:=1 Sheets("M51").Select Dim zelle As Range Dim mySelection As Range Set mySelection = Selection With Range(Cells(mySelection.Row + 91, mySelection.Column - 15), Cells(mySelection.Row + 91, mySelection.Column + 260)) .Value = .Value End With ActiveSheet.Range("$A$1:$JA$2915").AutoFilter Field:=1, Criteria1:="=" Sheets("M6").Select With Range(Cells(mySelection.Row + 91, mySelection.Column - 15), Cells(mySelection.Row + 91, mySelection.Column + 260)) .Value = .Value End With ActiveSheet.Range("$A$1:$IZ$2853").AutoFilter Field:=1, Criteria1:="=" Sheets("M7").Select With Range(Cells(mySelection.Row + 91, mySelection.Column - 15), Cells(mySelection.Row + 91, mySelection.Column + 260)) .Value = .Value End With ActiveSheet.Range("$A$1:$JA$2853").AutoFilter Field:=1, Criteria1:="=" Sheets("M8").Select With Range(Cells(mySelection.Row + 91, mySelection.Column - 15), Cells(mySelection.Row + 91, mySelection.Column + 260)) .Value = .Value End With ActiveSheet.Range("$A$1:$IZ$2853").AutoFilter Field:=1, Criteria1:="=" Sheets("KB").Select With Range(Cells(mySelection.Row + 91, mySelection.Column - 15), Cells(mySelection.Row + 91, mySelection.Column + 260)) .Value = .Value End With ActiveSheet.Range("$A$1:$JA$2853").AutoFilter Field:=1, Criteria1:="=" Sheets("Daten").Select Application.ScreenUpdating = True ActiveWorkbook.Save End If msg = MsgBox("Tag in Werte umgewandelt", vbOKOnly) End Sub |