Ir ao conteúdo
  • Cadastre-se

Ativação de Sheets com o VBA Utilizando uma Variável


Posts recomendados

Sou novo de VBA, estou tentando trabalhar com ativação de sheets utilizado uma variável que dependendo de cada situação irá para uma determinada sheets. Tipo assim: Sheets(ENTRADA2.Value).Select substituiria os diversos códigos deste tipo Sheets("225").Select;Sheets("226").Select;Sheets("227").Select, etc. Tentei utilizar o código Sheets(ENTRADA2.Value).Select, onde ENTRADA2 é uma variável condicional porém não obtive exito apresentando o seguinte erro: ..Erro em tempo de execução '424': O objeto é Obrigatório. Peço ajuda para solucionar este problema. Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

Sheets(ENTRADA2.Value)

 

não se usa .value em variaveis

tem que ser assim

Sheets(ENTRADA2)

 

.value apenas em objetos como range, textbox e essas coisas

 

a não ser que você tenha setado essa variavel como range

Dim ENTRADA2 As RangeSet ENTRADA2 = Range("a1")Sheets(ENTRADA2.Value).Select
Link para o comentário
Compartilhar em outros sites

Obrigado, porém não funcionou. Deu erro: 'Erro em Tempo de Execução '9'' - Subscrito Fora do Intervalo. Para mais informações, estou usando o Office 2013. E esta é a uma parte da sequência de códigos que visa a importação de dados de diversos arquivos os quais serão copiados para determinadas pastas conforme sua origem.

 
O string é inputado na range (a qual eu chamo de variável) através de uma caixa de listagem combinada com a função Procv.
 
Sub Auto_Open()
'
    Windows("Consolidado.xlsm").Activate
    Sheets("ENTRADA").Select
    Range("A1").Select
    Application.DisplayFullScreen = True
    Range("A33:AD33").Select
    ActiveWindow.FreezePanes = True
    Application.DisplayAlerts = False
    If Range("ENTRADA1").Value = 17 Then Macro1
    Macro2
End Sub
 
Sub Macro2()
    Windows("Consolidado.xlsm").Activate
    Sheets(ENTRADA2).Select
    [A1:I1200].ClearContents
    Sheets("Enderecos").Select
    Range("Arquivo17").Select
    ChDir "H:\NOVA REDE - AGO.2012\Pessoa Jurídica - PJ"
    Arquivo17 = Sheets("Endereco").Cells(84, 11)
    On Error GoTo MsgBox17
    Workbooks.Open Filename:=Arquivo17
    ActiveWorkbook.Save
    Sheets("Planilha").Select
    Range("A1:I200").Select
    Selection.Copy
    Windows("Consolidado.xlsm").Activate
    Sheets(ENTRADA2).Select
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Retorno
 
 
Agradeço se puder continuar com a ajuda.

Edcronos obrigado pela ajuda. Usei o código da forma que você me orientou o erro continuou na execução da linha: 'Sheets(ENTRADA2.Value).Select' só que o erro continua: 'Erro em Tempo de Execução '9' ' - Subscrito Fora do Intervalo.

 

 

 

Continuo aceitando ajuda.

Link para o comentário
Compartilhar em outros sites

eu não consigo visualizar o que é  ENTRADA2

quando você usou value deu erro porque não era um objeto

sem value deu erro porque não tem um nome de sheet valido

 

se for o nome de uma celula na planilha você tem que usar

 

Sheets(range(ENTRADA2).Value).

 

fora isso você tem que mostrar o que é ENTRADA2

 

para ser ajudado você tem que primeiro se auto ajudar e dar o maximo de informação possivel,

ou então apenas absorver o pouco de informação passada

 

eu sou enrolado para pedir ajuda, muito mais que você,

mas eu não fico na dependência e faço teste e pesquisas para saber onde estou errando

Link para o comentário
Compartilhar em outros sites

Obrigado pelo comentário, eu também procuro estudar e realizar diversas tentativas, porém desta vez não estou conseguindo resolver este problema. Já pesquisei em diversos sites e fóruns porém não obtive exito. Amigo, se é que posso lhe chamar assim, ENTRADA2 é um nome de célula onde é imputado, dependendo da situação, nome de sheets, e dependendo da situação também, necessito acessar esta determinada sheet na qual receberá dados importados de outro arquivo e que servirão para ser usados em outros procedimentos. Acho que não consigo ser mais claro do que isso. Agradeço sua atenção desde já. Obrigado.

Link para o comentário
Compartilhar em outros sites

Obrigado. Irei testar. Agora, se conselho fosse bom não se dava e sim vendia, mais mesmo assim te darei um. Seja mais humilde com as pessoas, ninguém é obrigado a conhecer tudo, meu primeiro post foi bem claro: "..Sou novo de VBA,..." se eu fosse um expert não estaria aqui perguntando, sou curioso, o pouco que sei foi pesquisando, nunca fiz qualquer curso ou obtive aprendizado, a não ser o auto-aprendizado, sobre técnicas e uso do VBA. Mas de qualquer forma fico muito grato por sua preciosa ajuda.


Não funcionou. "Uso Invalido da Propriedade". Obrigado.

Link para o comentário
Compartilhar em outros sites

eu também sou curioso e também já me ajudaram muito

como você não postou uma planilha como o basole falou nao tem como adivinhar o que está acontecendo

 

na sua macro não tem definição do que é entrada2

poderia ser uma variavel publica definida em outra macro

poderia ser o nome de um textbox, de combobox

 

eu falei que para ser ajudado precisa passar o maximo de informação possivel
eu por minha vez faço apenas perguntar confusas e não posto exemplos então tenho que me contentar com suposições e buscar minhas próprias soluções, "sou enrolado mesmo"

 

mas já que você acha que estou sendo mau educado, me abstenho de tentar ajudar

 

e somente posso falar poste uma planilha igual a que está usando para que outros possam solucionar o seu problema

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!