- 05 Out 2020 às 16:34
#59448
Pessoal, bom dia!
Sou nova em programação vba e realizei um código bem simples....
Possuo uma base de dados com intervalos de quilometragem inicial e final de alguns serviços realizados, e tenho que distribuí-los em outra aba, onde a quilometragem é dividida de 100 em 100 m indicando a data na qual foram realizados. Consigo preencher a outra aba nos campos correspondentes às km inicial e final com a data de realização, porém eu necessito que todo o intervalo entre o km inicial e final fosse preenchido.
Por exemplo se trabalhei em 08/2019 dos kms 9,700 ao 10,200 necessito que todas as células nesse espaço sejam preenchidas e não somente as células correspondentes ao valor inicial e final.
Tentei colocar um loop com while, porém sem sucesso, assim acabei voltando para minha primeira versão de código. Poderiam me ajudar por favor?

Código segue abaixo
Sou nova em programação vba e realizei um código bem simples....
Possuo uma base de dados com intervalos de quilometragem inicial e final de alguns serviços realizados, e tenho que distribuí-los em outra aba, onde a quilometragem é dividida de 100 em 100 m indicando a data na qual foram realizados. Consigo preencher a outra aba nos campos correspondentes às km inicial e final com a data de realização, porém eu necessito que todo o intervalo entre o km inicial e final fosse preenchido.
Por exemplo se trabalhei em 08/2019 dos kms 9,700 ao 10,200 necessito que todas as células nesse espaço sejam preenchidas e não somente as células correspondentes ao valor inicial e final.
Tentei colocar um loop com while, porém sem sucesso, assim acabei voltando para minha primeira versão de código. Poderiam me ajudar por favor?
Código segue abaixo
Código: Selecionar todos
Sub manutençãorealizada()
' Seleciona a ultima linha preenchida da planilha base de dados
ultimalinha = Sheets("Base Manutenções").Cells(Rows.Count, "A").End(xlUp).Row
'ultimalinha2 = Sheets("Base Manutenções").Cells(Rows.Count, "A").End(xlUp).Row
' Seleciona a primeira linha vazia da planilha de justificativas
primeiralinha = Sheets("Base Compilada").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row
For j = 1 To 605
For i = 2 To ultimalinha
If Sheets("Base Manutenções").Cells(i, 45) = 1 Then
If Sheets("Base Manutenções").Cells(i, 12) >= Sheets("Base Compilada").Cells(1, j) And Sheets("Base Manutenções").Cells(i, 12) <= Sheets("Base Compilada").Cells(1, j + 1) Then
Sheets("Base Compilada").Cells(2, j) = Sheets("Base Manutenções").Cells(i, 51) & "/" & Sheets("Base Manutenções").Cells(i, 50)
End If
If Sheets("Base Manutenções").Cells(i, 13) >= Sheets("Base Compilada").Cells(1, j) And Sheets("Base Manutenções").Cells(i, 13) <= Sheets("Base Compilada").Cells(1, j + 1) Then
Sheets("Base Compilada").Cells(2, j) = Sheets("Base Manutenções").Cells(i, 51) & "/" & Sheets("Base Manutenções").Cells(i, 50)
End If
End If
If Sheets("Base Manutenções").Cells(i, 45) = 2 Then
If Sheets("Base Manutenções").Cells(i, 12) >= Sheets("Base Compilada").Cells(1, j) And Sheets("Base Manutenções").Cells(i, 12) <= Sheets("Base Compilada").Cells(1, j + 1) Then
Sheets("Base Compilada").Cells(3, j) = Sheets("Base Manutenções").Cells(i, 51) & "/" & Sheets("Base Manutenções").Cells(i, 50)
End If
If Sheets("Base Manutenções").Cells(i, 13) >= Sheets("Base Compilada").Cells(1, j) And Sheets("Base Manutenções").Cells(i, 13) <= Sheets("Base Compilada").Cells(1, j + 1) Then
Sheets("Base Compilada").Cells(3, j) = Sheets("Base Manutenções").Cells(i, 51) & "/" & Sheets("Base Manutenções").Cells(i, 50)
End If
End If
Next
Next
End Sub