Barakkino ha scritto: ↑giovedì 1 febbraio 2024, 10:16
....ma io avrei preferito una macro che bloccasse "Incolla" con una finestra indicante il non avvenuto incollaggio. La mia richiesta è anche perché ho altre situazioni simili dove incollando in modo sbagliato (+ o - celle) comprometterebbe il risultato.
Al massimo puoi cancellare quello appena incollato se in A1 non è presente la scritta "FATTURA ELETTRONICA", questo perchè se prima non incolli il contenuto in memoria non puoi sapere cosa sia presente nell'area degli appunti.
Ho aggiunto 3 righe alla fine della macro presente nel tuo allegato
Codice: Seleziona tutto
sub Incolla
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Flags"
args1(0).Value = "A"
dispatcher.executeDispatch(document, ".uno:Delete", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$A$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Format"
args3(0).Value = 1
dispatcher.executeDispatch(document, ".uno:PasteSpecial", "", 0, args3())
iF ThisComponent.CurrentController.ActiveSheet.GetCellRangeByName("A1").String = "FATTURA ELETTRONICA" Then
dispatcher.executeDispatch(document, ".uno:Undo", "", 0, Array())
End If
end sub