Ir para conteúdo
Fórum Script Brasil

rhbohrer

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre rhbohrer

rhbohrer's Achievements

0

Reputação

  1. Eu não sei se é a forma mais fácil, mas fiz da seguinte forma: Gravei uma macro fazendo a pesquisa, depois selecionei a célula e copiei. Fui para a outra planilha e colei como vínculo. Após editei a macro e ela ficou assim: Sub VINCULO_CLIENTE_PROJETO() ' VINCULO_CLIENTE_PROJETO Macro 'Seleciona a planilha CLIENTES Worksheets("CLIENTES").Select 'Cria duas variáveis: varProcura recebe o valor da ComboBox BOX_NOME_CLIENTE e a varRegistros recebe a contagem de quantas linhas foram usadas na planilha CLIENTES varProcura = frmPROJETO.BOX_NOME_CLIENTE.Value varRegistros = Worksheets("CLIENTES").UsedRange.Rows.Count Range("B2:B" & varRegistros).Select 'Faz a seleção das linhas de B2 até ultima célula B com valor 'Faz a procura usando a variável varProcura Selection.Find(What:=varProcura, After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate 'Move a célula ativa 1x para a direita e 1x para esquerda. Isso é para deixar selecionado somente a célula onde foi encontrado o nome ActiveCell.Offset(0, 1).Select ActiveCell.Offset(0, -1).Select Selection.Copy 'Faz a cópia da selecão (CTRL + C) End Sub E quando clico no botão SALVAR, antes de gravar os outros dados dos campos do formulário, ele cola o vínculo na próxima célula livre Private Sub BT_SAVE_PROJETO_Click() 'Cria duas variáveis: varTotalRegProjeto armazena a quantidade de linhas usadas na planilha PROJETOS. varSalvaProjeto armazena o conteúdo da variável anterior e soma 1 para seleciona a linha logo abaixo da última com valor existente varTotalRegProjeto = Worksheets("PROJETOS").UsedRange.Rows.Count varSalvaProjeto = varTotalRegProjeto + 1 VINCULO_CLIENTE_PROJETO 'Chama a macro de pesquisa Worksheets("PROJETOS").Select 'Seleciona a planilha PROJETOS Cells(varSalvaProjeto, 1).Select 'Seleciona a célula na linha vazia e na primeira coluna ActiveSheet.Paste Link:=True 'Faz a colagem da cópia feita na macro em forma de vínculo 'A partir daqui salva os demais campos, cada um em uma coluna específica mas na mesma linha. Cells(varSalvaProjeto, 2) = TEXT_NOME_PROJETO Cells(varSalvaProjeto, 3) = TEXT_CONTATO Cells(varSalvaProjeto, 4) = TEXT_TELEF_CONTATO Cells(varSalvaProjeto, 5) = TEXT_EMAIL_CONTATO End Sub Fiz assim e deu certo. Como disse, não sei se é a mais fácil, mas como não encontrei nada na internet, quebrei a cabeça, mas consegui. Se alguém tiver uma forma mais fácil, compartilha aí.
  2. Bom dia caros, Estou fazendo uma aplicação em VBA usando o Excel para cadastro de projetos com vários 'forms' O primeiro 'form' chama-se frmCLIENTES que cadastra os dados do cliente O segundo 'form' chama-se frmPROJETOS que cadastra os dados do projeto Estou fazendo assim porque podem existir vários projetos para cada cliente. Os dados do 'form' frmCLIENTES salva na planilha CLIENTES, e o 'form' frmPROJETOS salva na planilha PROJETOS. No frmPROJETOS tenho uma ComboBox que lista o nome de todos os clientes cadastrados na planilha CLIENTES. Quando eu salvo o projeto, o valor da ComboBox é salvo na coluna A da planilha PROJETOS. Até ai tudo certo. O problema vem agora: Eu não gostaria de salvar o valor da ComboBox, gostaria de salvar a referência da célula na planilha CLIENTES onde está localizado o respectivo cliente, ou seja, na coluna A da planilha PROJETOS salvar =CLIENTES!A2 ao invés do valor apresentado na ComboBox. Por que isto? Porque quando eu editar o nome do cliente, os projetos associados tenha o registro também alterado de forma automática. Alguém saberia me ajudar com qual linha de comando eu posso fazer isso? A planilha CLIENTES está assim: E gostaria que a planilha PROJETOS ficasse assim: Claro que no Excel a célula A2 em PROJETOS exibiria o valor "CLIENTE 1" Obrigado. Rafael.
×
×
  • Criar Novo...