|
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
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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?
|
|
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
|
|
Rank: Member
Iscritto dal : 10/18/2003 Posts: 14
|
andrea ho fatto delle prove con l'ultima modifica e sembra tutto ok
|
|
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
|
|
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
|
|
Rank: Member
Iscritto dal : 10/18/2003 Posts: 14
|
Ciao Andrea, attendo tue notizie per il completamento della macro, Grazie
Domenico
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Guest |