Allora prova a inserire questa macro in un Modulo standard del vba:
- Codice: Seleziona tutto
Sub newD()
Dim fCell As String, mySplit, newD, oldD
'
fCell = "D5" '<<< Una cella contenente la vecchia data
'
mySplit = Split(" " & Range(fCell).FormulaLocal, "[", , vbTextCompare)
If UBound(mySplit) > 0 Then
oldD = Split(mySplit(1), " - ", , vbTextCompare)(0)
newD = Application.InputBox(PrompT:="La data di confronto", Type:=1)
Application.DisplayAlerts = False
Cells.Replace What:=oldD, Replacement:=Format(newD, "YYYY-MM-DD"), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Application.DisplayAlerts = True
Else
MsgBox ("Non ho individuato la parte da sostituire" & vbCrLf & Range(fCell).FormulaLocal)
End If
End Sub
La riga marcata <<< va compilata come da commento.
All'occorrenza avvia la Sub newD; ti sara' chiesto di inserire la nuova data e le formule saranno modificate di conseguenza.
Non sbagliare a inserire la data, perche' la macro controlla solo se quello che hai inserito puo' essere tradotto in data, non se quel nome file esiste.
Sono valide date le seguenti digitazioni:
- Codice: Seleziona tutto
01 gen - 1 gen anno corrente
01-02 - 1 feb anno corrente
24/3 - 24 marzo anno corrente
11/12/55 - 11 dic 1955
11/12/20 - 11 dic 2010
Ma la raccomandazione e' di inserire sempre date non equivocabili
Ciao