Fare conto alla rovescia nel formato gg-hh-mm-ss

di il
12 risposte

Fare conto alla rovescia nel formato gg-hh-mm-ss

Buonasera e tanti auguri a tutto il gruppo. Siamo a fine anno ed è tempo di countdown! Scherzi a parte, tempo fa ho realizzato un codice che effettua il countdown l'ultimo giorno dell'anno. Il codice, perfettamente funzionante, era il seguente:

Private Sub tempo1_Timer()
If xlCartella.Sheets("Foglio2").Range("B1") = 31 And xlCartella.Sheets("Foglio2").Range("C1") = 12 Then
   orario1.Visible = True
   Dim dd As Date

    dd = CDate("23:59:59") - Time + CDate("00:00:01")
    orario1.Caption = Format(dd, "hh:mm:ss")
    If orario1.Caption = "00:00:00" Then
    tempo1.Enabled = False
    orario1.Visible = False
    End If
    End If
End Sub

Quello che vorrei ottenere, ma non riesco, è un conto alla rovescia che, partendo dalla data in cui siamo (Now) vada fino alla mezzanotte del 31 dicembre, quindi un formato dd-hh-mm-ss. Grazie a chi potrà darmi una dritta e di nuovo tanti auguri.

12 Risposte

  • Re: Fare conto alla rovescia nel formato gg-hh-mm-ss

    31/12/2023 - anpol60 ha scritto:


    partendo dalla data in cui siamo (Now) vada fino alla mezzanotte del 31 dicembre

    Tu la differenza tra il 31 dicembre ed ora come la fai?

    Parti dal 31/12 per arrivare a now…

  • Re: Fare conto alla rovescia nel formato gg-hh-mm-ss

    Ciao Sihsandrea.

    Il codice che ho postato fa partire in automatico il conto alla rovescia il 31 dicembre di ogni anno in una label posta nella form.

    Quindi sono visibili solo le ore, minuti e secondi che mancano alla mezzanotte. Ho provato a cambiare il codice inserendo anche i giorni, ma non ci sono riuscito.

  • Re: Fare conto alla rovescia nel formato gg-hh-mm-ss

    Per trovare i giorni mancanti basta

    giorni= DateDiff("d", Now, CDate("31/12/2023"))
    

    Con questa informazione modifica tu il tuo codice per visualizzare anche i giorni.

    P.S. Stai usando VBA per Excel non VB6

  • Re: Fare conto alla rovescia nel formato gg-hh-mm-ss

    Ciao Oregon,

    Sto usando VB6 per far funzionare il codice. VB6 prende solo i riferimenti delle celle B1 e C1 di Excel.

  • Re: Fare conto alla rovescia nel formato gg-hh-mm-ss

    Ma che senso ha? Se hai i riferimenti in due celle di Excel usa VBA di Excel.

  • Re: Fare conto alla rovescia nel formato gg-hh-mm-ss

    Il problema è che non so “trasferire” il countdown sulla label della form in VB6.

    Il countdown allo stato attuale funziona solo il 31 di dicembre indicandomi le ore, minuti e secondi alla mezzanotte. 

  • Re: Fare conto alla rovescia nel formato gg-hh-mm-ss

    31/12/2023 - anpol60 ha scritto:


    Il countdown allo stato attuale funziona solo il 31 di dicembre indicandomi le ore, minuti e secondi alla mezzanotte. 

    Questo era chiaro sin dall'inizio.

    Ti ho detto come calcolare i giorni. Basta visualizzarli

  • Re: Fare conto alla rovescia nel formato gg-hh-mm-ss

    31/12/2023 - oregon ha scritto:


    Per trovare i giorni mancanti basta

    giorni= DateDiff("d", Now, CDate("31/12/2023"))
    

    Con questa informazione modifica tu il tuo codice per visualizzare anche i giorni.

    P.S. Stai usando VBA per Excel non VB6

    Però questo codice va bene se inserito nel VBA. Ho provato ad inserire la data “31 dicembre 2023” nella cella “B2” di excel e provare a fare il conto alla rovescia sulla form di VB6 partendo da quella cella (B2 - Now), ma non riesco a venirne a capo.

  • Re: Fare conto alla rovescia nel formato gg-hh-mm-ss

    Scusa, perché segui strade di cui non si è parlato?

    Ti ho suggerito la linea di codice per ottenere i giorni mancanti, perché non provi ad usarla?

  • Re: Fare conto alla rovescia nel formato gg-hh-mm-ss

    Private Sub tempo1_Timer()
    If xlCartella.Sheets("Foglio2").Range("C1") = 12 Then
     orario1.Visible = True 'la label diventa visibile
      Dim dd As Date
       dd = CDate("23:59:59") - Time + CDate("00:00:01")
       orario1.Caption = "0" & 31 - xlCartella.Sheets("Foglio2").Range("B1") & ":" & Format(dd, "hh:mm:ss")
       If orario1.Caption = "00:" & "00:00:00" Then
       tempo1.Enabled = False
       orario1.Visible = False
       End If
       End If
    End Sub

    Per adesso ho risolto in questo modo

  • Re: Fare conto alla rovescia nel formato gg-hh-mm-ss

    31/12/2023 - oregon ha scritto:


    Scusa, perché segui strade di cui non si è parlato?

    Ti ho suggerito la linea di codice per ottenere i giorni mancanti, perché non provi ad usarla?

    Ci sto provando, ma sinceramente non so dove e come inserire il codice che mi hai consigliato.

  • Re: Fare conto alla rovescia nel formato gg-hh-mm-ss

    Risolto!

    Ho inserito la data da cui deve iniziare il countdown in una cella del foglio excel (B2). Quindi nella form del VB6 ho inserito il seguente codice che però non funziona se volessi far partire per esempio il countdown da subito. Semmai ritornerò sull'argomento più in là.

    Grazie a tutti e alla prossima!

    Private Sub tempo1_Timer()
    If xlCartella.Sheets("Foglio2").Range("C1") = 12 Then   'se siamo nel mese di dicembre
      orario1.Visible = True
      Dim dd As Date
       dd = xlCartella.Sheets("Foglio2").Range("B2") - Time + CDate("00:00:01")
       orario1.Caption = Format(dd, "dd:hh:mm:ss")
       If orario1.Caption = "00:00:00" Then
       tempo1.Enabled = False
       orario1.Visible = False
       End If
       End If
    End Sub

Devi accedere o registrarti per scrivere nel forum
12 risposte