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
Por guiibarbosaa
#24048
Olá galera do guru do excel, boa noite!

Apresento-lhes mais um problema que estou tendo ao desenvolver minhas macros, se puderem me ajudar nessa ficarei muito satisfeito,seguinte:

1- tenho um gerador de relatórios, que a partir de um CNPJ me traz algumas informações de uma planilha base.

2- Ao executar o laço principal, informando a ultima linha e a primeira pós cabeçalho, faço as respectivas comparações e atribuo a planilha "relatório" os dados validados a partir da minha busca, ou seja, do meu CNPJ.

3- Na minha planilha base existem diversas colunas, porém na minha planilha relatório também. Estou utilizando o método de atribuição de range = range para obter os dados, porém ao executar, erro de estouro de memoria me é informado.

4- De forma resumida meu código se baseia nas seguintes caracteristicas:
Código: Selecionar todos
Sub exmp()
Dim wsBase As Worksheet
Dim wsRel As Worksheet
Dim uLinBase As Long
Dim linRel As Long

Set wsBase = Sheets("base")
Set wsRel = Sheets("relatorio")

linRel = 2
For i = 2 To uLin
    
    If cnpj = wsBase("B" & i).Value Then
        
        wsRel.Range("A" & linRel).Value = wsBase.Range("D" & i).Value
        
        'Aqui eu faço todas as sequencias de atribuições caso a condição if seja satisfeita
        'Para não pesar o tópico do forum, eu resolvi resumir a forma ao qual salvando esses valores na planilha relatorio
        'São mais ou menos 43 atribuições da planilha base para a planilha relatório
        ' Já tentei o método Cells porém obtive o mesmo erro
         'Se tiver algum erro de programação nesse exemplo, desconsiderem, é apenas um esboço.
        
        linRel = linRel + 1
    End If
    
    
Next i

End Sub
Queria saber se existe algum outro método mais limpo ou mais dinâmico de fazer as devidas copias, já tentei limpar as variáveis a cada interação mas não consegui. Imagino que minha duvida sera de grande valia pra quem ta começando também. Obrigado e aguardo ajuda, vlwss
Por osvaldomp
#24050
Não consigo avaliar se o comando abaixo é a causa do seu problema, mas ... tá estranho.

For i = 2 To uLin

Nessa parte do código que foi postada, a variável uLin não está declarada e, mais importante, não há valor atribuído a ela.
Por Feka
Posts
#24053
Esse trecho aqui também não faz sentido: If cnpj = wsBase("B" & i).Value Then

A variavel cnpj não teve valor atribuido anteriormente e você está utilizando o método .value para uma sheet.
Por guiibarbosaa
#24054
Galera não se atenham aos detalhes do código, meu problema esta apenas no laço, como disse é apenas um esboço.

Desejo saber se existe outro método de fazer as devidas atribuições no laço.
Por marcosocoloniezi
#24269
Tente o seguinte, criar uma função que copia a célula que você deseja e outra para colar somente o valor no destino final.

e tente usar a função
For i=0 to uLin
If cnpj = wsBase("B2").Offset(i).value then
wsBase.Range("D2").Offset(i).select
copiar
wsRel.Range("A2").Offset(j).select
colar_valor
' e fazer isso para os demais dados
Avatar do usuário
Por Reinaldo
Avatar
#24297
Estouro basicamente deve-se a atribuição; a uma variável; de um valor maior do que a capacidade inicialmente "reservada" a essa variável.
Assim ao definir uma variável como por exemplo integer, esta irá aceitar "apenas" valores no intervalo de -32.768 a 32.767; fora dessa faixa gera o "ESTOURO". Assim no ACHOMETRO, o erro esta no valor atribuido a variavel " i ", não na "Propriedade Range"
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