c.luinetti
00mercoledì 12 luglio 2017 11:08
Ciao a tutti
Dovrei fare una macro che inserito un periodo temporale ( una cella ) vada ad eliminare tutte quelle righe che contengono una data ( nella colonna B) inferiore al periodo di riferimento scelto.
sapete aiutarmi ?
allego un foglio xls con l'esempio chiaro.
grazie come sempre
Claudio
by sal
00mercoledì 12 luglio 2017 12:38
Macro temporale
Ciao Claudio, pensavo che volevi una macro per far scoppiare un temporale, di questi tempi con il caldo e gli incendi sarebbe una cosa ottima, scherzo naturalmente.
eccoti la macro per cancellare le righe, in base alle due date che inserisci in B1-C1
Sub CancellaRiga()
Dim d1, d2, r, x
r = Cells(Rows.Count, 2).End(xlUp).Row
d1 = Range("B1")
d2 = Range("C1")
For x = r To 6 Step -1
If Cells(x, 2) >= d1 And Cells(x, 2) <= d2 Then
Rows(x).Select
Selection.Delete Shift:=xlUp
End If
Next x
End Sub
attenzione che elimina tutta la riga.
Ciao By Sal
c.luinetti
00mercoledì 12 luglio 2017 13:00
Grazie Sal, sei stato gentilissimo.
Dopo averla provata ho visto che non esegue correttamente le delate.
la macro elimina le righe 40-41-42-43-44-45 che non dovrebbe invece eliminare perchè appartengono al renge temporale impostato; e non elimina quelle che invece dovrebbe..
ho provato a fare il debug e il tuo codice è sensato, ma non mi spiego perchè non esegua le delate in modo corretto.
Claudio
c.luinetti
00mercoledì 12 luglio 2017 13:07
Sal ho risolto
If Cells(x, 1) >= d1 And Cells(x, 2) <= d2 Then
grazie mille
by sal
00mercoledì 12 luglio 2017 15:09
Macro temporale
Ciao Claudio, mi sembra strano che hai risolto in quanto vedo le date solo nella colonna "B" la 2 appunto.
Come hai risolto controlla in 2 colonne, ma una data per colonna.
sei sicuro che le date nelle celle dove non sono state cancellate siano date?.
Ciao By Sal
c.luinetti
00giovedì 13 luglio 2017 10:28
ciao Sal
hai ragione, la prima data dovevo metterla in colonna 1.
ti avevo mandato un esempio, ma il mio foglio di lavoro reale è un'altro, in cui la d1 è nella prima colonna
sal ne approfitto per chiederti questo: come posso fare a non far restituire il valore (#DIV/0!) in una cella quando la mia macro nei suoi conteggi esegue 0:0 ?
se faccio 0:0 = #DIV/0! in excel, invece vorrei che mettesse 0
grazie
Claudio
c.luinetti
00giovedì 13 luglio 2017 11:12
mi rispondo da solo:
=SE.ERRORE(C2/C1;0)