Condividi tramite

Come ottenere la data di oggi in una cella se quella a fianco non è vuota

Anonimo
2020-03-15T15:46:16+00:00

Date le celle A1 e B1, ho costruito la seguente espressione in B1:

=SE(A1<>"VAL.VUOTO";"OGGI";"VAL.VUOTO")

ma anzichè ottenere la data di oggi ottengo la parola OGGI.

  • Qualuno può darmi l'espressione corretta per ottenere in B1 la data (cioè gg-mm-aa)?
Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2020-03-16T11:59:00+00:00

Ciao brazospo,

Grazie! Come hai scritto tu ovviam. funziona e mi andrebbe benissimo. Se non fosse vero quel che mi hai segnalato e che ignoravo... Allora, poichè mi serve che la data calcolata da OGGI() resti fissa in questo foglio, penserei di  attivare in Formule\Calcolo\Ozioni di calcolo quella Manuale anziche Automatico (mi pare che l'opz. si applichi solo al foglio corrente).

Cosa ne pensi?

Per fissare le date sarà necessario ricorrere a VBA.

Quindi prova qualcosa del genere:

  • Fai clic dx sulla linguetta del foglio di interesse
  • Seleziona l'opzione Visualizza Codice dal **** menu contestuale risultante
  • Incolla il seguente codice:

'=========>>

Option Explicit

'--------->>

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Rng_Dati As Range, Rng_Data As Range, rCell As Range

    Const sIntervallo_Dati As String = "A1:A20"            '<<=== Modifica

    Const sIntervallo_Date As String = "C1:C20"           '<<=== Modifica

    Set Rng_Dati = Intersect(Me.Range(sIntervallo_Dati), Target)

    If Not Rng_Dati Is Nothing Then

        On Error GoTo XIT

        Application.EnableEvents = False

        For Each rCell In Rng_Dati.Cells

           With rCell

         Set Rng_Data = Intersect(.EntireRow, Me.Range(sIntervallo_Date))

                         If Not IsDate(Rng_Data.Value) Then

                    Rng_Data.Value = Now()

                End If

            End With

        Next rCell

    End If

XIT:

    Application.EnableEvents = True

End Sub

'<<=========

  • Alt+Q per chiudere l'editor di VBA e tornare a Excel.
  • Salva il file con l'estensione xlsm.

Potresti scaricare il mio file di prova brazospo20200316.xlsm

===

Regards,

Norman

La risposta è stata utile?

4 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Gianfranco55 25,190 Punti di reputazione Moderatore volontario
2020-03-15T19:02:09+00:00

ciao

puoi farlo ma appena ricalcoli tutte le date 

verranno cambiate.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2020-03-17T18:09:35+00:00

    Grazie!

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2020-03-15T18:12:09+00:00

    Grazie! Come hai scritto tu ovviam. funziona e mi andrebbe benissimo. Se non fosse vero quel che mi hai segnalato e che ignoravo... Allora, poichè mi serve che la data calcolata da OGGI() resti fissa in questo foglio, penserei di  attivare in Formule\Calcolo\Ozioni di calcolo quella Manuale anziche Automatico (mi pare che l'opz. si applichi solo al foglio corrente).

    Cosa ne pensi?

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Gianfranco55 25,190 Punti di reputazione Moderatore volontario
    2020-03-15T16:46:08+00:00

    ciao

    =SE(A1<>"VAL.VUOTO";OGGI();"VAL.VUOTO")

    e ho dei dubbi sul VAL.VUOTO

    anche quello è un testo perciò

    =SE(A1<>"";OGGI();"")

    tieni a mente che quel oggi()

    cambia ogni giorno non è fisso

    per averlo fisso devi usare il vba

    La risposta è stata utile?

    0 commenti Nessun commento