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.
  • Avatar do usuário
#38758
Boa noite. Tenho uma pasta na qual analiso alguns codigos. Na coluna C estão os codigos compostos por numeros e letras.
Na coluna F estao alguns numeros. Uma macro primeiro extrai a parte numerica da ponta esquerda dos codigos, depois compara essa parte numerica com os numeros na coluna F e a seguir precisa distribuir os codigos correspondentes nas colunas de J a N.
Observe que a ordem dos numeros nas colunas de J a N é a mesma ordem da coluna F. Então quando o codigo estiver na linha 2 da coluna F, deve colocar os resultados na coluna J(10) e assim por diante.
O problema é que deveria começar a escrever a partir da linha 2 de cada coluna. Mas está surgindo um grande espaço vazio indesejavel nas colunas. Isso porque para cada coluna deve ser usada uma letra diferente como indice na Cells. Mas como fazer a macro modificar as letras dos indices para cada numero de F?
Tentei colocando uma sequencia de letras na coluna G e a variavel Lin assumiria a letra correspondente ao numero daquela linha, mas o Cells não aceita. Não sei se objeto Range serve pra esse caso.
Na aba Resultado Desejado esta os resultados como devem ser.
Se puderem dar uma olhada, desde já estou grato.
CODIGOS.xlsm
Você não está autorizado a ver ou baixar esse anexo.
#38759
Veja se é isso que pretende
Código: Selecionar todos
Sub Codigos()
    Sheets("Plan1").Activate
    Sheets("Plan1").Range("J2:N30").ClearContents    ' Adaptar ao Range necessário
    Dim m, n, UlinC, UlinF  As Integer
    UlinC = Cells(Rows.Count, 3).End(xlUp).Row
    UlinF = Cells(Rows.Count, 6).End(xlUp).Row
      For m = 2 To UlinC
            codigo1 = Cells(m, 3)
               num = (Left(codigo1, 1) & Mid(codigo1, 2, 1)) * 1
            For n = 2 To UlinF
               colF = Cells(n, 6)
                  'Lin = Cells(n, 7)
                  If num = colF Then
                     Linha = Cells(Rows.Count, n + 8).End(xlUp).Row
                     Cells(Linha + 1, n + 8) = codigo1
                  End If
            Next n
      Next m
End Sub


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