Página 1 de 1

Preencher células em um intervalo determinado loop while

Enviado: 05 Out 2020 às 16:34
por Cinthya
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?


Imagem

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

            

Re: Preencher células em um intervalo determinado loop while

Enviado: 05 Out 2020 às 20:11
por babdallas
Anexa um pequeno exemplo dos dados só para melhorar o entendimento do problema, por favor.

Preencher células em um intervalo determinado loop while

Enviado: 06 Out 2020 às 06:55
por Cinthya
bom dia!
Tentei enviar a planilha, porém não consegui. Caso necessite posso mandar por email

A minha base de dados é bem grande, porém somente as colunas abaixo interessam para o problema:

Imagem

Na outra aba, para onde desejo puxar os dados tenho na primeira linha toda a extensão de km da cidade(a planilha só tem isso), e desejo marcar onde houve manutenção em espaços de 100 em 100 m. Assim, na outra aba temos do km 000,000 - 000,100..... até o final.

Imagem

Por exemplo, nos primeiros dados da base temos o km inicial de 009,751 e final de 010,200.

Gostaria que na planilha onde os kms são dispostos a cada 100 m as colunas referentes aos km 009,700-009,800-009,900-010,000-010,100 e 010,200 recebessem a data em que a manutenção foi realizada. Porém somente as colunas correspodentes à km inicial (009,700) e final (010,200) recebem os dados desejados, como na imagem abaixo:

Imagem

Re: Preencher células em um intervalo determinado loop while

Enviado: 06 Out 2020 às 11:45
por babdallas
Anexe uma pasta de trabalho com poucos dados, de preferência com dados fictícios. Vai ficar bem mais fácil de entender o código depurando-o baseado em umas pasta de trabalho similar ao seu problema real.