Domanda.

da Carlo  carghi@libero.it

Scusami, ma nonostante il mio girovagare nel tuo sito, non sono riuscito a risolvere il mio problema.
In un intervallo di celle, es: A1:A150 inserisco i giorni del mese corrente, 1,2,3.......fino a 31 se il mese è di 31 gg., però
per alcuni giorni il numero del giorno devo riperterlo più volte su più celle. Es: di come potrebbe apparire l'intervallo menzionato sopra:
A1=1
A2=2
A3=3
A4=3
A5=3
A6=3
A7=4
A8=4
A9=4
A10=5
A11=6
ecc.ecc..........
Naturalmente l'intervallo di 150 celle quasi mai viene utilizzato per intero ma garantisce tranquillamente la copertura dei mesi più
impegnativi. E' anche chiaro che nelle colonne adiacenti vengono inseriti i dati relativi alla giornata lavorativa indicata nella colonna A. Mi è successo che registrando a fine mese tutte le giornate lavorative, mi sia dimenticato di registrare due giornate: qui nasce il mio quesito.........è possibile ad es. in E1 visualizzare quante giornate sono state registrate nell'intervallo A1:A150?.......in poche parole, quanti numeri differenti ci sono nell'intervallo A1:A150?.......se dopo avere registrato il mese di Agosto vedo comparire in E1 30..........sarei avvisato che mi sono dimenticato di registrare una giornata,
Spero di essere stato chiaro..........e spero soprattutto in un tuo aiuto........Grazie anticipate
Carlo

Risposta.

vedi Carlo, esempi specifici sul sito che rispecchino esattamente le problematiche che troviamo, sarà sempre impossibile trovarne. Ma quello che il sito vuole (cioè io), è fornire ESEMPI che forniscano una base da modificare ed adattare alle esigenze. Lo scopo è di aiutare chi vuole imparare il vba, non di fornire routine a coloro che non vogliono usare il cervello che mamma ci ha fatto, studiandosi i vari esempi presenti nella sezione vba, e sono tanti, che riguardano la ricerca o meno di dati, ed adattarli alle proprie necessità. Questa volta ti accontento, ma sarà l'ultima. Questa la routine:
Sub Contamelapippo()
Dim CL As Object
Set zona = Range([A1], [A1].End(xlDown))
For Each CL In zona
X = CL.Value
If CL.Offset(1, 0).Value = X Or CL.Offset(1, 0).Value = X + 1 Then
GoTo 10
ElseIf CL.Offset(1, 0) = "" Then
Exit For
Else
MsgBox "manca un giorno dopo il " & CL.Value & ""
End If
10:
Next
End Sub

Questa ti avvisa dicendoti se manca uno, o più giorni, tra i numeri della colonna A, basandosi sul controllo che la cella sotto a quella in quel momento controllata, sia di valore uguale o maggiore di 1, in caso contrario ti segnala la mancanza, e se una cella è vuota (significa che siamo a fine elenco), si esce dalla routine.
Saluti, ennius