Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
peppejeh

[Resolvido] Auda com macro para banco de dados

Recommended Posts

Bom dia a todos.

Espero que alguém tenha a solução para o meu problema, já estou alguns dias pesquisando e ainda nao encontrei o que eu preciso.

Tenho uma "Tabela Mestre", onde vou formular o custo de um determinado produto. Nela vai ser listado todos os materias necessários para fabricação do produto que me darão o preço de custo e de venda. Criei uma Macro com nome de "Novo produto". Toda vez que clico no botao da macro, a tabela mestre é duplicada e abre uma caixa para eu inserir o código do novo produto, que será consequentemente o nome da guia também.

Depois que eu formulo o produto, criei outra macro com nome de "Finalizar produto".

Esta macro copia os dados do produto recém formulado (nome, código, uso, preço lojista e preço consumidor) e joga para uma outra tabela "BANCO" onde será o banco de dados. Detalhe: a macro esta programada para sempre copiar na proxima linha em branco da tabela, então toda vez que eu crio um poduto novo, eu finalizo e a macro vai listando na sequencia.

Este banco de dados será usado futuramente para a ficha de orçamento.

O problema é que, possivelmente terei que fazer ajustes em alguns produtos, na tabela que formulo o custo, gerando novos valores. Mas estes valores nao alteram no banco de dados, pois não consegui configurar a macro para copiar com vínculo.

Não estou conseguindo acertar este detalhe, pois não tem como colar com vínculo, uma vez que tenho que colar célula por célula dos dados. Pois ai eu teria que configurar a macro pra colar a cedula "1" para banco de dados, depois a cédula "2", e assim por diante, porém para fazer isto eu ja teria que configurar o nome das duas guias na macro, para ela ir e voltar de uma pra outra. Porém uma delas sempre será de nome desconhecido já que é uma guia recém duplicada para um novo produto.

Outra forma que pensei seria uma PROC. Aí a macro colaria na tabela de banco de dados apenas a cédula A1, e nas outra colunas ele buscaria por PROC, mas ai teria que ser feito uma busca em todas as guias existentes no documento, que tivessem a palavra que contpem na cédula "A1" da guia BANCO e retornar outro valor de uma cédula específica. E isso não sei como fazer.

Espero que tenha conseguido me expressar.

Coloquei em anexo o modelo da minha planilha, acho que se entrarem e seguirem os passos vão conseguir vizualizar o meu problema.

http://www.4shared.com/file/FDaB72dO/BANCO_DE_DADOS.html

Desde já, obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • ninguem sabe como proceder?

    sabia q essa era difícil, mas esperava que alguem soubesse a resposta.:confused:

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • ninguem sabe como proceder?

    sabia q essa era difícil, mas esperava que alguem soubesse a resposta.:confused:

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Tente isto:

    O preço alterado emcomponentes altera automaticamente os preços dos produtos em suas planilhas. Faço uma macro para ler o banco e copiar os novos valores.

    Sub Recalcular()

    ContaLinha = 2

    While Sheets("Banco").Range("A" & ContaLinha).Value <> Empty

    NomePlanilha = Sheets("Banco").Range("A" & ContaLinha).Value

    Endereco = Sheets("Banco").Range("A" & ContaLinha).Row

    Sheets(NomePlanilha).Select

    Range("B33:H33").Select

    Selection.Copy

    Sheets("BANCO").Select

    Range("B" & Endereco).Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

    :=False, Transpose:=False

    Application.CutCopyMode = False

    ContaLinha = ContaLinha + 1

    Wend

    End Sub

    Veja se é por aí!!!!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Olá Márcio Rodrigues,

    é por aí mesmo.

    Esta sua macro já me ajudou, resolveu meu problema. Assim quando altero um componente na formula de produtos eu atualizo o banco de dados pela sua macro e fica tudo ok, sem repetir o produto.

    Muito obrigado mesmo.

    Já aproveitando então, vou fazer meis uma pergunta.

    Teria como criar uma macro que, localizasse no banco, na cluna A, onde é o código do produto, e colocar um hyperlink para a guia que tiver o mesmo nome?

    Desde já, agradeço novamente.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Tente isto:

    A macro vai ler o banco e na coluna A & Linha do banco vai por um Hiperlink

    Sub Hiperlink()

    ContaLinha = 2

    While Sheets("Banco").Range("A" & ContaLinha).Value <> Empty

    NomePlanilha = Sheets("Banco").Range("A" & ContaLinha).Value

    Sheets("Banco").Select

    Range("A" & ContaLinha).Select

    SubAddressHyper = NomePlanilha & "!" & Worksheets(NomePlanilha).Cells(1, 1).Address

    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _

    SubAddressHyper, TextToDisplay:=NomePlanilha

    ContaLinha = ContaLinha + 1

    Wend

    End Sub

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Bom dia Márcio,

    Eu tentei utilizar este código que você postou.

    Ele tranforma a palavra da coluna A em hyperlink, mas nao encontra a referencia, nao direciona pra nenhuma plan.

    tens alguma ideia?

    Obrigado!!!

    Att.

    Jeferson

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá Jeferson

    Usei na planilha e funcionou perfeitamente. Da alguma mensagemde erro?

    Execute a macro passo a passo (tecla F8) e verifique qual o endereço que está sendo gravado em na variavel:

    SubAddressHyper = NomePlanilha & "!" & Worksheets(NomePlanilha).Cells(1, 1).Address

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Boa tarde Márcio

    Realmente, eu coloquei este código que você me forneceu, na tabela que eu disponibilizei para download, e ele funcionou corretamente...

    Ele não esta funcionando numa outra tabela, que eu tenho aqui, que está mais completa... a que eu coloquei para download foi uma versão reduzida, com menos guias, para fins de explicar a minha duvida apenas.

    Qual parte do código deve alterar para utiliza-lo com outro arquivo?

    Não da nenhuma mensagem de erro não, ele executa a macro normalmente, e o nome da coluna A vira um hyperlink, porém quando vou acessá-lo, diz: "Esta referência não é valida".

    Mas o nome das planilha estão tudo iguais as q eu te enviei, a unica diferença é que este arquivo tem mais informações, mais mais guias, com outras coisas.

    Obrigado novamente

    Abraço

    Jeferson

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • OBS.: Resolvido...

    Funcionou agora Márcio.

    Não sei porque, mas eu deletei a macro, criei ela de novo e agora está tudo OK...

    Muito grato a você.

    Obrigado pela ajuda!

    Abraço e Boas festas de final de ano!

    Att.

    Jeferson

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Visitante
    Este tópico está impedido de receber novos posts.
    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×