Condividi tramite

Vba - Calcolo Data da un numero settimana

Anonimo
2016-10-07T14:56:35+00:00

Buongiorno a tutti,

Non so come fare con il vba questa cosa (anzi , 2) :

ho un numero settimana e vorrei trasformarla in una data .

Il file di input purtroppo arriva da un portale e non è molto strutturato, da questo devo creare un csv, ho visto che è un file di forecast, quindi potrebbe esserci il nr.settimana, esempio 5 ma riferita all’anno 2017(non specificato in nessun modo nel file)  .

Oltre al problema numero 1 , cioè da numero settimana a data,  per capire se devo andare nell’anno dopo pensavo di calcolare il numero settimana in base alla data odierna (partendo dal lunedì) e se il numero settimana è maggiore di quello del file allora è anno successivo.

Quindi il problema numero 2 è come prendere il numero settimana dalla data odierna

Grazie a tutti

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
2016-10-10T14:33:07+00:00

Ciao IL CREM,

Il codice del punto 1 è proprio quello che mi serve, ho fatto alcune prove ed ho visto che non sempre è precisissimo, o magari va specificato qualcosa , esempio  settimana 44 la data che mi dovrebbe restituire è 31/10/2016 (ogni lunedì) invece il codice restituisce 4/11/2016

Manca qualcosa ?

Se guardi la guida VBA per la funzione DatePart vedrai qualcosa del genere (adattata dalla mia versione inglese):

A titolo solo di esempio:

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

Public Sub m2()

    Dim s As String

    Dim iFirstWeekOfYear As Long

    Dim iFirstDayOfWeek As Long

    s = "31/10/2016"

    For iFirstWeekOfYear = 0 To 3

        For iFirstDayOfWeek = 0 To 7

            MsgBox " Numero Settimana " _

                 & DatePart("ww", CDate(s), iFirstDayOfWeek, iFirstWeekOfYear) _

                 & vbNewLine _

                 & "Argomento firstDayOfWeek = " & iFirstDayOfWeek _

                 & vbNewLine _

                 & "Argomento firstWeekOfYear = " & iFirstWeekOfYear

        Next iFirstDayOfWeek

    Next iFirstWeekOfYear

End Sub

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

===

Regards,

Norman

La risposta è stata utile?

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

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2016-10-10T07:36:49+00:00

    Buongiorno,

    innanzitutto grazie,

    Il codice del punto 1 è proprio quello che mi serve, ho fatto alcune prove ed ho visto che non sempre è precisissimo, o magari va specificato qualcosa , esempio  settimana 44 la data che mi dovrebbe restituire è 31/10/2016 (ogni lunedì) invece il codice restituisce 4/11/2016

    Manca qualcosa ?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-10-07T15:51:14+00:00

    Non ho capito.

    Puoi, per favore, postare la stringa della tua data? Grazie.

    Ad ogni modo, a solo titolo di esempio:

    (1)

    Public Sub m()

        Dim lng As Long

        lng = 41

        MsgBox DateAdd("ww", lng, DateSerial(Year(Date), 1, 1))

    End Sub

    (2)

    Public Sub m()

        Dim s As String

        s = "07/10/2016"

        MsgBox DatePart("ww", CDate(s))

    End Sub

    Vedi DateAdd e DatePart nella guida del vb di Excel.

    La risposta è stata utile?

    0 commenti Nessun commento