Selecione os dados, copie para a área de transferência do sistema e cole em outro programa

0

No excel, tenho certos nomes de itens vinculados a determinados números de códigos de barras (por exemplo, item1 00335578). Digamos que eles sejam armazenados em duas colunas em uma planilha.

Em outra planilha, quero ter uma caixa de pesquisa com funções de preenchimento automático. Por exemplo, eu tenho dois itens no banco de dados - item1 e house2. Quando o usuário começa a digitar "it", as possíveis correspondências (no cenário atual item1) devem aparecer (assim como na pesquisa do Google) e o usuário pode clicar nelas.

Próximo a este campo, haverá um botão - "Copiar". Ao clicar, copiará o código de barras do item correspondente que procuramos (NÃO O NOME). De preferência, isso também irá colá-lo em outro programa que está atualmente aberto (eu ficaria feliz por sugestões sobre isso).

Por uma questão de simplicidade, posso fazer duas concessões no design, se vocês acham que isso é muito complicado, ou que a implementação de tal comportamento é um exagero óbvio:

  1. A caixa de pesquisa pode ser um menu suspenso, em vez de um campo com recursos de preenchimento automático
  2. O "Botão Copiar" pode simplesmente copiar o número do código de barras e deixar o usuário colar no outro programa aberto.

Isso tem que ser feito no excel, espero que você possa ajudar. Eu preciso de uma orientação sobre como abordar este problema, eu não espero soluções completas (no entanto, tenho que admitir, seria útil: D)

    
por lekroif 12.03.2013 / 18:50

2 respostas

1

Aqui está uma abordagem para você começar. O usuário terá que colar manualmente os dados.

1-Validaçãodedados

SelecioneacélulaeváparaDados>Validaçãodedados.DefinaaOrigemcomoalistadeitensquevocêdesejaincluir.

No exemplo acima, usei intervalos nomeados com itens referenciando a primeira coluna de:

2-Formacommacroatribuída

O"botão" na primeira imagem é apenas uma forma com uma macro atribuída que (1) aceita o nome do item selecionado, (2) exibe seu código de barras a partir dos dados da fonte de amostra e, em seguida, (3) envia o código de barras para a área de transferência para a leitura do usuário.

Aqui está o código que eu usei. Basta alterá-lo para atender às suas necessidades ( item refere-se à célula B2 no meu exemplo e produtos refere-se aos dados da fonte de amostra):

Sub Get_Barcode()
    Dim objData As New DataObject
    Dim barcode As String
    barcode = Application.VLookup(Range("item"), Range("products"), 2, False)
    objData.SetText barcode
    objData.PutInClipboard
    MsgBox "Barcode " & barcode & " copied to clipboard"
End Sub

Quando usado:

Vocêpodeprecisar adicione uma referência à Biblioteca de Objetos do Microsoft Forms 2.0 para que este código funcione. No editor do VBA, vá para Ferramentas > Referências > Procure e verifique-o lá. Se não estiver listado, pode ser necessário clicar em Navegar e adicioná-lo manualmente. No meu laptop, está em C:\Windows\System32\FM20.DLL .

    
por 13.03.2013 / 05:28
1

Você pode aprimorar a macro acima enviando diretamente os dados para o aplicativo externo com o método Application.SendKeys , em vez de colocá-los na área de transferência.

    
por 14.03.2013 / 00:31