Sr. Mauro, poderia me exlicar as linhas abaixo, o que cada uma executa.
Lin = 2
linha = 2
Do Until Plan12.Cells(Lin, 2) = ""
If Plan12.Cells(Lin, 2) >= CDate(DataIni) And Plan12.Cells(Lin, 2) <= CDate(dataFim) Then
Worksheets("Plan9").Cells(linha, 2) = Plan12.Cells(Lin, 2)
Worksheets("Plan9").Cells(linha, 3) = CDate(Plan12.Cells(Lin, 3))
Worksheets("Plan9").Cells(linha, 4) = Plan12.Cells(Lin, 4)
linha = linha + 1
Primeiramente, vejo que alterou os nomes das abas, espero que esteja funcionando corretamente.
Lin = 2 - Primeira Variável definida com o Valor 2, nesta rotina seria Linha 2
linha = 2 - Mesmo caso da anterior, só que é a Segunda Variável definida com o Valor 2, ou seja Linha 2 tambem
Do Until Plan12.Cells(Lin, 2) = ""
Enquanto na Plan12 as Celulas(Linha(lin), coluna(2) for diferente de Vazia a rotina continua, se tiver uma celula vazia sai da rotina, por isto todas as celulas na Coluna B tem de estar preenchidas, na primeira execução, lembre-se que a Variavel Lin é = a 2
If Plan12.Cells(Lin, 2) >= CDate(DataIni) And Plan12.Cells(Lin, 2) <= CDate(dataFim) Then
Se a Data na Plan12.Cells(Lin, 2) for Maior ou Igual que a Data Inicial e Menor ou Igual a Data Final
Worksheets("Plan9").Cells(linha, 2) = Plan12.Cells(Lin, 2) - Copia para a Plan9 conforme a Variavel Linha, o valor referente a Plan12.Cells(Lin, 2)
O restante é a mesma coisa, só mudando as Colunas
Worksheets("Plan9").Cells(linha, 3) = CDate(Plan12.Cells(Lin, 3))
Worksheets("Plan9").Cells(linha, 4) = Plan12.Cells(Lin, 4)
linha = linha + 1 - 'Aqui incrementamos a linha somando + 1, ou seja iniciamos na linha 2 e enquanto a condição Do Until for Verdadeira passamos para a proxima Linha.
Espero ter conseguido explicar direito.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 04/03/2014 7:17 pm