Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Salve
esiste un comando VB con il quale si possa sostuire direttamente in una cella la formula presente (nella fattispecie una somma abbastanza complessa) con il relativo valore che la formula stessa produce? Io son riuscito a farlo solamente utilizzando
Range("A1").Copy
Range("A1").PasteSpecial xlPasteValues
ma vorrei sapere se esiste un comando alternativo che non utilizzi il copia/incolla (che tra l'altro mi scatena l'evento change del foglio e mi crea difficoltà di altro genere).
Grazie per le risposte, ciao.
Puoi intercettare la modifica di una o più celle nell'evento Change e far sì che non succeda nulla. Ad esempio pe rla cella A1:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Exit Sub
Else
'quello che vuoi tu
End If
End Sub
Questo codice invece fa quello che chiedi senza Copia/incolla:
Public Sub m()
Dim sh As Worksheet
Set sh = ThisWorkbook.Worksheets("Foglio1")
With sh
.Range("A1").Value = .Range("A1").Value '<<===
End With
Set sh = Nothing
End Sub
--
La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.
--
Mauro Gamberini - Microsoft© MVP(Excel)