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.
Por rodolfonobrega
#11717
Galera, boa noite, tudo bem com vocês?

Se alguém puder me dar uma força eu agradeceria muito!

Estou desenvolvendo uma macro bem simples em que filtrará o conteúdo de algumas colunas, obterá o endereço das células desejadas, selecionará tais células e depois plotará isso em um gráfico!

Na verdade, a macro final será um pouco mais complexa, mas estou desenvolvendo esta inicialmente para depois aperfeiçoar o processo, pois bem:

Inicialmente tenho alguns dados de que vão de B4 até alguma coisa, Tenho que verificar quais células nesse intervalo tem um valor (no exemplo estou usando 0,5), quando tiver esse endereço, armazeno os pares ordenadas Bi, Ci, sendo i o número da linha em que estou! Tudo funciona beleza na obtenção dos endereços, o problema é pra selecionar o Range!

Vou postar a parte do código aqui para ficar mais fácil o entendimento:
Código: Selecionar todos
Sub Teste()
'Declaração de variáveis
    Dim celula As Range
    Dim minvalue As Double
    Dim enderecos As String
    Dim enderecosunion As String    
    
'Determinação do valor das variáveis
    minvalue = 0.5
     
'Verificacao dos Filtros e obtenção dos endereços
    For Each celula In Range("B4:" & ActiveSheet.Range("B65536").End(xlUp).Address).Cells
        If celula.Value = minvalue Then
            enderecos = enderecos & "," & celula.Offset(0,1).Address(False, False) & _
            "," & celula.Offset(0, 4).Address(False, False)
        End If
    Next
    enderecos = Right(enderecos, Len(enderecos) - 1)
    Range(enderecos).Select
End Sub
Tudo funciona okay, porém, na hora de selecionar as células obtidas, eu recebo o seguinte erro:
Erro em tempo de execução '1004':
O método 'Range' do objeto '_Global' falhou
Pensei:
Deve ser porque tem muitos endereços no Range e ele deve estar 'estourando', então vou fazer por Union, assim os endereços ficam 'formatados e menores' e não terei esse problema, criei o seguinte código:
Código: Selecionar todos
Define as variaveis auxiliares de contagem
    first = True
    count = 1
    
    For Each celula In Range("B4:" & ActiveSheet.Range("B65536").End(xlUp).Address).Cells
        If celula.Value = minvalue Then
            enderecos = enderecos & "," & celula.Offset(0,1).Address(False, False) & _
            "," & celula.Offset(0, 4).Address(False, False)
            count = count + 1
            'Divide o Range em intervalos de 9 pares ordenadas por limitação do VBA
            If count = 9 Then
                If first Then
                    enderecosunion = Right(enderecos, Len(enderecos) - 1)
                    first = False
                Else
                    enderecosunion = Union(Range(enderecosunion), Range(Right(enderecos, Len(enderecos) - 1))).Address
                End If
                enderecos = ""
                count = 1
            End If
        End If
    Next
    enderecosunion = Union(Range(enderecosunion), Range(Right(enderecos, Len(enderecos) - 1))).Address
   
    Range(enderecosunion).Select
Os endereços ficam bonitinhos, 'formatados', porém, na parte do Select apenas uma das colunas é selecionada e o principal problema: eu perco os pares ordenadas x, y, então dá erro no gráfico! :?

Portanto, tenho que fazer a seleção do primeiro jeito mesmo, mas pra isso, preciso dar um jeito de acabar com esse erro 1004, alguém tem alguma ideia de como fazer isso?

Muito obrigado desde já!
Por rodolfonobrega
#11768
Seguem uma tabela de exemplo com o código a ser executado!
obrigado
Você não está autorizado a ver ou baixar esse anexo.
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