Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ok,
ti ringrazio per la segnalazione e chiedo scusa per la svista.
Questo il codice con la dichiarazione esplicita delle due variabili
<cut>
Non è che così sia molto meglio... se seleziono e cancello più celle, che succede? prova ad aggiungere:
If Target.Cells.Count = 1 Then
'codice
End If
Inoltre, per favore, fai questa prova. Scrivi 1/5/2011 in cella A1 del Foglio1 e poi lancia questa macro:
Public Sub m_1()
Dim sh As Worksheet
Set sh = ThisWorkbook.Worksheets("Foglio2")
With sh
If .Range("A1").Value = #1/5/2010# Then
MsgBox "Uguale"
Else
MsgBox "Diverso"
End If
End With
Set sh = Nothing
End Sub
E vedi invece risultato di questa:
Public Sub m_2()
Dim sh As Worksheet
Set sh = ThisWorkbook.Worksheets("Foglio2")
With sh
If .Range("A1").Value = CDate("1/5/2011") Then
MsgBox "Uguale"
Else
MsgBox "Diverso"
End If
End With
Set sh = Nothing
End Sub
Le date non sono così semplici da gestire fra vb ed Excel. Il formato del vb(americano: mm/dd/yyyy) e quello di Excel(il nostro per via della localizzazione: dd/mm/yyyy) vanno normalizzati. Grazie per l'attenzione.
--
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)