macro temporale

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
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 [SM=x423051]


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)

Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 08:23.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com