Aiutamici Forum
Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

formula Excel con le date Opzioni
a10n11
Inviato: Friday, March 03, 2006 2:46:40 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
ti assumo come collaudatore.
In effetti nella macro, è previsto un intervallo di un mese intero ma è stato dimenticato di inserire l'istruzione di uscita dalla routine nel caso si verificasse l'evenienza.
Modificare questa parte di routine:
<font color=red>If dtin = prmin And dfin = udmfin Then
ttot = x
End If </font id=red>
come segue:
<font color=red>
If dtin = prmin And dfin = udmfin Then
ttot = x
Range("e25") = ttot
Exit Sub
End If
If mesfin = mesin Then
ttot = Int((dfin * 6) / 7) - Int((dtin * 6 + 1) / 7) + 1
Range("e25") = ttot
Exit Sub
End If
</font id=red>
prova a tu a simulare quante possibili combinazioni di date

saluti
Andrea

delvallo
Inviato: Friday, March 03, 2006 3:04:32 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
Fatta la correzione, in questo caso se fai per esempio dal 01/01/2006 al 30/04/2006 da 26; dal 01/02/06 al 30/04/06 da 26; dal 01/03/06 al 30/04/06 da 26 tutto ciò ovviamente è impossibile. Ti ringrazio per il collaudatore, però credimi ci tengo a questa macro che esca perfetta perchè devo fare un lavoro molto importante ovviamente sempre se tu sia disposto ad aiutarmi fino a trovare la giusta soluzione, grazie di cuore.
a10n11
Inviato: Friday, March 03, 2006 3:34:03 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
Forse prima o poi ci arriviamo.(trovata una variabile sbagliata)
questa è la macro completa rivista :

Sub entro_Aprile()
x = 26
dtin = Range("a3").Value
dfin = Range("b3").Value
dtlimit = #4/30/2006#
udmin = DateSerial(Year(dtin), Month(dtin) + 1, 0)
udmfin = DateSerial(Year(dfin), Month(dfin) + 1, 0)
prmin = DateSerial(Year(dtin), Month(dtin), 1)
prmfin = DateSerial(Year(dfin), Month(dfin), 1)
mlimit = Month(dtlimit)
mesin = Month(dtin)
mesfin = Month(dfin)
If mesfin <= 4 Then
If dtin = prmin And dfin = udmin Then
ttot = x
Range("e25") = ttot
Exit Sub
End If
If mesfin = mesin Then
ttot = Int((dfin * 6) / 7) - Int((dtin * 6 + 1) / 7) + 1
Range("e25") = ttot
Exit Sub
End If
If dtin = prmin Then
For n = 1 To mesfin - <font color=red>mesin</font id=red>
ttot = ttot + x
Next
Else
gecc1 = Int((udmin * 6) / 7) - Int((dtin * 6 + 1) / 7) + 1
z = mesfin - mesin - 1
gecc2 = z * 26
End If
If dfin = udmfin Then
ttot = ttot + 26
Else
gecc = Int((dfin * 6) / 7) - Int((prmfin * 6 + 1) / 7) + 1
End If
Else
If dtin = prmin Then
For n = 1 To mlimit
ttot = ttot + x
Next
Else
gecc1 = Int((udmin * 6) / 7) - Int((dtin * 6 + 1) / 7) + 1
z = mlimit - mesin
gecc2 = z * 26
End If
End If
ggtot = ttot + gecc1 + gecc + gecc2
Range("e25") = ggtot
End Sub

saluti


Edited by - a10n11 on 03/03/2006 15:35:20

delvallo
Inviato: Friday, March 03, 2006 4:28:35 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
Andrea diciamo che se non usciamo pazzi ora non succederà più. Diciamo che come prima non fa più però se io metto esempio dal 01/03/2006 al 31/12/2006 mi restituisce 104 al posto di 52. non so più che pesci pigliare credimi, aiutamiiiiii. Scherzo confido in te.
a10n11
Inviato: Friday, March 03, 2006 4:58:12 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve di nuovo.
non ti preoccupare oramai è diventata una questione tra me e il problema. Trovato il nuovo errore:
cambia queste istruzioni
If dtin = prmin Then
<font color=red>For n = 1 To mlimit</font id=red>
ttot = ttot + x
Next

con questa:
<font color=red> For n = 1 To mesfin - mesin </font id=red>

e dimmi che tutte le possibili combinazione di date funzionano bene.
saluti
Andrea


delvallo
Inviato: Friday, March 03, 2006 5:10:50 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
ho fatto tante prove te ne porgo due come esempio dal 01/04/2006 al 31/12/2006 dovebbre dare 26 invece da 234; 01/01/2006 al 31/12/2006 da 286 al posto di 104.
delvallo
Inviato: Friday, March 03, 2006 5:14:24 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
Se vuoi ti mando il file su cui sto lavorando per facilitarti lo scopo della macro
a10n11
Inviato: Friday, March 03, 2006 5:40:53 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
Eh! no stavolta non hai ragione.
dal 01/01/06 al 31/12/06 da 104
e dal 01/04/06 al 31/12/06 da 26
hai corretto le righe come ti ho indicato?
se vuoi ti mando la macro completa x email
saluti
Andrea

delvallo
Inviato: Friday, March 03, 2006 5:59:04 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
delvallo78@tin.it mandala qua, tu lo vuoi il mio file per capire il mio scopo?
a10n11
Inviato: Friday, March 03, 2006 6:07:18 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
ti ho già mandato la mail. Se il tuo file non contiene cose private mandalo pure che vedo l'oggetto della "tortura"
saluti
Andrea

delvallo
Inviato: Friday, March 03, 2006 7:18:19 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
andrea ho fatto delle prove con l'ultima modifica e sembra tutto ok
a10n11
Inviato: Friday, March 03, 2006 7:44:15 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
stavo per rimandarti il file.
L'inghippo era che l'ultima modifica che ti ho mandato non c'entrava nulla forse ero nel pallone. Ho provato in lungo e in largo è funziona. Ps. ottimo lavoro il tuo e mi sono convinto che la macro sia la soluzione ideale al posto della formula.
Ora parto e torno Lunedì, devi pazientare per completamento relativo alle date eccedenti aprile. (hai comunque una traccia utile dalla macro appena fatta per cercare di divertirti nel fine settimana)
saluti
Andrea


delvallo
Inviato: Friday, March 03, 2006 7:55:10 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
Grazie di tutto aspetto lunedì per completare il lavoro, così posso incominciare a lavorare sul file che tu hai visto, buon fine settimana
delvallo
Inviato: Monday, March 06, 2006 1:22:23 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
Ciao Andrea, attendo tue notizie per il completamento della macro, Grazie

Domenico
a10n11
Inviato: Monday, March 06, 2006 4:19:21 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
da una occhiata al file che ti ho restituito se va bene.
saluti
Andrea

delvallo
Inviato: Monday, March 06, 2006 5:46:39 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
Ciao Andrea l'ho provato ho riscontrato errore dal 29/07/2006 al 31/12/2006. Una cortesia questa forumula di deve riferire al 2005 Grazie
delvallo
Inviato: Monday, March 06, 2006 5:46:40 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
Ciao Andrea l'ho provato ho riscontrato errore dal 29/07/2006 al 31/12/2006. Una cortesia questa forumula di deve riferire al 2005 Grazie
a10n11
Inviato: Monday, March 06, 2006 6:27:17 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve corretto e rimandato.
NB. L'anno di riferimento va cambiato all'interno delle macro in questa riga
dtlimit = #4/30/2006#
serve cambiarlo sia per il calcolo dei giorni del mese di febbraio che per il calcolo delle domeniche.
saluti
Andrea


delvallo
Inviato: Monday, March 06, 2006 6:51:22 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
Sembrebbe tutto ok, sto facendo delle prove se tu hai tempo e vuoi provare ulteriolmente sarebbe ideale sai 4 occhi sono meglio di due, Sei un grande.
Domenico
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.