Condividi tramite

Scadenzario mensile

Anonimo
2015-03-27T15:04:44+00:00

Salve Gent.mo forum

Avrei necessità di un Codice VBA che mi permettesse di operare nel Foglio1 di Excel il quale è così strutturato:

Cella D13  = Riservata all’inserimento di una Data Inizio

Cella J13   = Riservata all’inserimento di un numero di mesi da aggiungere (Min 1 mese; max 12 mesi)

Cella G17  = Riservata alla somma delle Celle D13 e J13

   Esempi:  Cella D13: 28/02/15; Cella J13: 1; Totale  Cella G17: 28/03/2015  

                          Altro esempio: Cella D13: 15/02/2015; Cella J13: 2; Cella G17: 15/04/2015

Unica Eccezione:  il mese di Agosto (dall’1 al 31) non va conteggiato, esso dev’essere calcolato come se non

                              Esistesse:

Esempio: Data Inizio: 25/07/2015, mesi aggiunti 1; Totale cella G17 = 25/09/2015.

Ringrazio, per l’attenzione, saluti Paolo

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
2015-03-27T16:58:47+00:00

Ciao Paolo,

Devi salvare il tuo file con l'esensione xlsm - perché il file include una funzione VBA.

Ho caricato il mio file di prova PaoloNigro20150327.xlsm a: **http://1drv.ms/1F1pAIE**

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-03-27T22:08:48+00:00

    Ciao Paolo,

    Sono lieto che hai risolto la difficoltà e ti ringrazio per il cortese riscontro.

    Alla prossima!

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-03-27T17:12:16+00:00

    Ciao Norman

    Non mi resta altro che darti ragione; adesso tutto è OK 

    Grande Norman, ciao da parte di Paolo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-03-27T16:40:34+00:00

    Ciao Norman

    Ho inserito il modulo che mi hai inviato; ho fatto le prove inserendo una data in D13, ho poi aggiunto 2 mesi in J13, ma nella cella della somma ed esattamente in G17 non appare alcun risultato.

    Mi sai dire perché?

    Il Codice che ho inserito è: 

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

    Option Explicit

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

    Public Function DataPaolo(DataInizio As Date, NumeroMesi As Long) As Date

        Dim myDate As Date

        myDate = DateAdd("m", NumeroMesi, DataInizio)

        If Month(DataInizio) < 8 And Month(myDate) >= 8 Then

            myDate = DateAdd("m", 1, myDate)

        End If

        DataPaolo = myDate

    End Function

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

    A dopo, Paolo

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-03-27T16:17:40+00:00

    Ciao Paolo,

    Avrei necessità di un Codice VBA che mi permettesse di operare nel Foglio1 di Excel il quale è così strutturato:

    Cella D13  = Riservata all’inserimento di una Data Inizio

    Cella J13   = Riservata all’inserimento di un numero di mesi da aggiungere (Min 1 mese; max 12 mesi)  

    Cella G17  = Riservata alla somma delle Celle D13e J13

                              Esempi:  Cella D13: 28/02/15; Cella J13: 1; Totale  Cella G17: 28/03/2015  

                              Altro esempio: Cella D13: 15/02/2015; Cella J13: 2; Cella G17: 15/04/2015                                       

    Unica Eccezione:  il mese di Agosto (dall’1 al 31) non va conteggiato, esso dev’essere calcolato come se non

                                  Esistesse:

                                 Esempio: Data Inizio: 25/07/2015, mesi aggiunti 1; Totale cella G17 = 25/09/2015.

    • Alt-F11 per aprire l'editor di VBA
    • Alt-IM per inserire un nuovo modulo di codice
    • Nel nuovo modulo vuoto, incolla il seguente codice:

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

    Option Explicit

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

    Public Function DataPaolo(DataInizio As Date, NumeroMesi As Long) As Date

        Dim myDate As Date

        myDate = DateAdd("m", NumeroMesi, DataInizio)

        If Month(DataInizio) < 8 And Month(myDate) >= 8 Then

            myDate = DateAdd("m", 1, myDate)

        End If

        DataPaolo = myDate

    End Function

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

    • Alt-Q per chiudere l'editor di VBA e tornare a Excel.

     Questa funzione può essere utilizzata come una funzione VBA, ad esempio:

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

    Public Sub Demo()

        Const startDate As Date = #7/25/2015#  '\ 25 Giuglio, 2015

        Const MesiDaAggiungere As Long = 1

        Call MsgBox(DataPaolo(startDate, MesiDaAggiungere))

    End Sub

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

    Questa funzione può essere utilizzata anche come una funzione nativa di Excel; ad esempio, utilizzando, le celle del tuo esempio:

                  =DataPaolo(D13;J13)

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento