Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[vba access 2003]: elencare date tra intevallo

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[vba access 2003]: elencare date tra intevallo

Postdi karug64 » 03/02/13 22:50

Salve a tutti.

Avrei la necessita' (date due date iniziale e finale) di elencare su un foglio excel i giorni interccorrenti.
Riesco a farlo cosi':

Codice: Seleziona tutto
gio = (CDate(Testo191) - CDate(Testo188)) + 1
        riga = 13
        For x = 1 To gio
                If Weekday((CDate(Testo188.Value + x))) <> 1 And Weekday((CDate(Testo188.Value + x))) <> 7 Then
                    riga = riga + 1
                    objWorksheet.Cells(riga, 1).Value = ((CDate(Testo188.Value + x)))
                End If
            End If
        Next x
    End If


che funziona perfettamente fino a quando le date sono ricomprese nello stesso mese.
Se infatti provo a vedere l'intervallo tra 31/01/2013 ed il 06/02/2013, la routine da' subito errore perche pone

((CDate(Testo188.Value + x))) = 32

Come potrei risolvere ?

Grazie
Office 2010
karug64
Utente Senior
 
Post: 580
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: [vba access 2003]: elencare date tra intevallo

Postdi Flash30005 » 04/02/13 00:02

(A braccio)
karug64 ha scritto:...che funziona perfettamente fino a quando...

Come fa a funzionare? :roll:
Prova a fare così
Codice: Seleziona tutto
gio = CDate(Testo191) - CDate(Testo188) + 1 (aggiungi 1 solo se vuoi comprendere anche la data inizio, normalmente non si fa)
        riga = 13
        For x = 1 To gio
                If Weekday(CDate(Testo188.Value) + x) <> 1 And Weekday(CDate(Testo188.Value) + x) <> 7 Then
                    riga = riga + 1
                    objWorksheet.Cells(riga, 1).Value = CDate(Testo188.Value) + x
                End If
            End If
        Next x
    End If


Ciao

P.s. Ho eliminato qualche parentesi di troppo
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [vba access 2003]: elencare date tra intevallo

Postdi Anthony47 » 04/02/13 00:31

Mi sbraccio anche io (oltre a Flash, vedi sopra) suggerendo
Codice: Seleziona tutto
riga = 13
For I = CDate(Testo188) To CDate(Testo191)
    If Weekday(I, 2) < 6 Then
        objWorksheet.Cells(riga, 1).Value = CDate(I)
        riga = riga + 1
    End If
Next I
Non conosco la natura di Test188 e Testo191, potrebbero essere necessarie altre conversioni.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [vba access 2003]: elencare date tra intevallo

Postdi karug64 » 05/02/13 23:38

Ok.
Provate tutte e due le soluzioni.

Grazie
Office 2010
karug64
Utente Senior
 
Post: 580
Iscritto il: 20/11/11 21:22


Torna a Applicazioni Office Windows


Topic correlati a "[vba access 2003]: elencare date tra intevallo":


Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti