Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#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?


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

            
#59453
Anexa um pequeno exemplo dos dados só para melhorar o entendimento do problema, por favor.
#59460
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
#59473
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.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord