Conteúdo: Default Ardósia Uva Barbie Morango Pôr do sol Banana Folha Chocolate Madeira
Fundo: Default Ardósia Uva Barbie Morango Pôr do sol Banana Folha Chocolate Madeira
Desenho: Liso Onda Linha Retalho Madeira Rocha Couro Colméia Vertical Triângulo
Bem-vindo ao Fórum do BABOO!

Desde 2000 o Fórum do BABOO tem ajudado milhões de internautas de Windows a resolverem seus problemas e dúvidas, além de ajudar na remoção de vírus e malwares de seus computadores. Somos o único fórum brasileiro coordenado por um especialista com reconhecimento internacional pela sua competência em Windows, então se você tem uma dúvida ou problema que nenhum outro fórum resolve, poste-a aqui pois o MVP Babooadora desafios!
  

O Fórum do BABOO também conta com a participação exclusiva do administrador da área de Segurança MVP Mr.Million que tem reconhecimento internacional da Microsoft pelo seu incansável trabalho ajudando os internautas a remover vírus e malwares dos seus computadores. Se o seu computador está infectado por algum vírus, ele te ajudará a removê-lo!
  

Nosso time de especialistas também inclui Patropi  Osvaldomp  Caze  Ciro-Mota  XERLOUCO ROUMS  Tatha que responderão suas dúvidas sobre diversos assuntos.
 

Participe da nossa comunidade! 

Entre para seguir isso  
Seguidores 0
John Player Special

ajuda com macro/fórmula

11 posts neste tópico

pessoal, preciso de ajuda para implementar um lance aqui.

 

é o seguinte.

 

tenho uma planilha geral, onde insiro o cnpj e nome da empresa, que prestam serviços a nós. ex (digitei o cnpj menor para poupar tempo):

 

05434834              kibon

06834330              construtora planalto

12304490              papelaria maia

50340000              supermercados klavo

 

 

o cnpj sempre é posto em ordem alfabética.

 

 

dividimos esses credores em duas categorias, que são: alimentos e serviços. assim, kibon e supermercados klavo entram em alimentos, contrutora planalto e papelaria maia entram em serviços.

 

pois bem, todos esses credores precisam estar separados numa planilha só. assim, tem nesse mesmo book excel, a planilha alimentos:

 

05434834              kibon

50340000              supermercados klavo

 

e a planilha serviços:

 

06834330              construtora planalto

12304490              papelaria maia

 

 

também ordenadas por ordem do cnpj.

 

pois bem, o que preciso é que, ao digitar um novo credor na planilha geral, digamos

05434834              kibon

06834330              construtora planalto

12304490              papelaria maia

50340000              supermercados klavo

23409436               açougue ferreira        (acrescentado)

 

essa linha inteira seja acrescentada, conforme alguma indicação minha (pode ser mais uma coluna com o número 2 ou B) diretamente na planilha alimentos. ou seja, a planilha alimentos ganharia mais uma linha

05434834              kibon

50340000              supermercados klavo

23409436               açougue ferreira

 

 

como eu poderia fazer essa regra?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Instale o código abaixo no módulo da planilha "geral", assim:
1. copie o código daqui
2. clique com o direito na guia da planilha "geral" e escolha 'Exibir código'
3. cole o código na janela em branco que vai se abrir
4. feito! 'Alt+Q' para retornar para a planilha e testar

Considerei o cnpj na coluna "A" e o nome na coluna "B".
Coloque na coluna "C" a letra "a" para os alimentos ou a letra "s" para os serviços (sem as aspas).

Funcionamento - após inserir "a" ou "s" na coluna "C", estando o cnpj e o nome preenchidos, o código copiará o registro recém criado ou para a planilha "alimentos" ou para a planilha "serviços".


Private Sub Worksheet_Change(ByVal Target As Range)
  Dim LR As Long
    If Target.Count > 1 Then Exit Sub
    If Target.Column <> 3 Then Exit Sub
      If Target.Value = "s" And Application.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row, 2))) = 2 Then
        With Sheets("serviços")
          LR = .Cells(Rows.Count, 1).End(xlUp).Row
          .Cells(LR + 1, 1).Resize(, 2).Value = Cells(Target.Row, 1).Resize(, 2).Value
        End With
      ElseIf Target.Value = "a" And Application.CountA(Range(Cells(Target.Row, 1), Cells(Target.Row, 2))) = 2 Then
        With Sheets("alimentos")
          LR = .Cells(Rows.Count, 1).End(xlUp).Row
          .Cells(LR + 1, 1).Resize(, 2).Value = Cells(Target.Row, 1).Resize(, 2).Value
        End With
      End If
End Sub

 


Osvaldo

como disponibilizar arquivos neste fórum: abaixo da última postagem, clique em "Editor Completo" / "Selecionar arquivo..." / na sua máquina localize e clique no nome do arquivo que deverá estar compactado com extensão .zip

alternativa - hospede o arquivo em um site como www.sendspace.com >> é gratuito, sem cadastro, sem compactar, e depois coloque o link no seu post

dica - disponibilize amostra do seu arquivo com estrutura exatamente igual ao original

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá.

 

não funcionou. mas talvez eu tenha feito alguma coisa errada fiz algumas alterações de nome, estou tentandoa anexar a planilha, mas sempre aparece a msg Error You aren't permitted to upload this kind of file.

 

estranho, um fórum grande desse. postei no 4shared.

se puder dar uma olhada.

 

http://www.4shared.com/office/N1F9JRS6/Listas.html

Editado por John Player Special

''

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso de preenchimento da coluna "C" com a letra "a" funciona normalmente.

No caso de preenchimento com a letra "s" não está funcionando porque você alterou no código para "sind".

Para resolver altere esta linha:

atual
If Target.Value = "sind" And ...

altere para
If Target.Value = "s" And ...

Se ainda assim não funcionar confirme se as macros estão habilitadas no seu Excel.

 

obs. para anexar arquivos aqui no fórum os arquivos precisam estar zipados.


Osvaldo

como disponibilizar arquivos neste fórum: abaixo da última postagem, clique em "Editor Completo" / "Selecionar arquivo..." / na sua máquina localize e clique no nome do arquivo que deverá estar compactado com extensão .zip

alternativa - hospede o arquivo em um site como www.sendspace.com >> é gratuito, sem cadastro, sem compactar, e depois coloque o link no seu post

dica - disponibilize amostra do seu arquivo com estrutura exatamente igual ao original

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora sim, funcionou. só tenho mais três perguntas.

 

mas quando é acrescentado na outra planilha, o cnpj aparece como

1,56456E+13 5,16547E+13 1,56456E+13 5,16547E+13

 

mesmo formatando a célula como "texto", continua. pq isso acontece?

 

onde eu posso aprender esses códigos específicos para word e excel? isso é vba?

 

vejo que no excel tem a opção de "gravar macro", como se fosse um filme. isso é viável tecnicamente ou na realidade, as macros acabam sendo muito complexas para que essa função de ler o que está sendo digitado e clicado seja útil?

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora sim, funcionou. só tenho mais três perguntas.

nos ensine o que você fez para funcionar

 

 

mas quando é acrescentado na outra planilha, o cnpj aparece como

1,56456E+13 5,16547E+13 1,56456E+13 5,16547E+13

mesmo formatando a célula como "texto", continua. pq isso acontece?

experimente formatar a coluna que irá receber os cnpj's para texto antes de rodar o código

 

 

onde eu posso aprender esses códigos específicos para word e excel? isso é vba?

esses códigos fazem parte de macros; a linguagem utilizada para escrver os códigos é o VBA - Visual Basic for Applications;

há cursos de Excel/Word que incluem macros; cursos presenciais, pela Internet, por CDs/DVDs;

na Internet há vasto material grátis, pergunte ao sábio Google, vai te retornar material para vários anos de leitura

 

 

vejo que no excel tem a opção de "gravar macro", como se fosse um filme. isso é viável tecnicamente ou na realidade, as macros acabam sendo muito complexas para que essa função de ler o que está sendo digitado e clicado seja útil?

macros gravadas são aplicáveis basicamente para tarefas simples, em que não é requerida comparação, decisão, uso de variáveis;

o ideal é depurar macros gravadas para eliminar os comandos "Select", pois este comando provoca lentidão na execução;

também é possível gravar uma macro e depois depurá-la e incrementá-la com comparações, loops, introdução de variáveis, etc.;

por outro lado gravar macros é útil para se aprender a sintaxe dos comandos


Osvaldo

como disponibilizar arquivos neste fórum: abaixo da última postagem, clique em "Editor Completo" / "Selecionar arquivo..." / na sua máquina localize e clique no nome do arquivo que deverá estar compactado com extensão .zip

alternativa - hospede o arquivo em um site como www.sendspace.com >> é gratuito, sem cadastro, sem compactar, e depois coloque o link no seu post

dica - disponibilize amostra do seu arquivo com estrutura exatamente igual ao original

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi só trocar o sind por s, que estava faltando.

 

muito obrigado por tudo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá JPS,

 

Aqui você tem outra maneira de tentar resolver o seu problema (utilizando somente formulas).

 

Fórmula de matriz - você precisa utilizar as teclas Ctrl+Shift+Enter e não apenas Enter para entrar com uma fórmula de matriz na célula.

 

Faça alguns testes.

 

Markmzz

Baboo-JPS-mk01.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi, markz. obrigado, não conhecia as fórmulas matriz.

estarei testando aqui.

 

osvaldo se eu quisesse que a letra que desse o gatilho para inserir a linha estivesse na 3 ou quinta coluna, caso eu aumente a planilha, devo alterar onde no código?

Editado por John Player Special

''

Compartilhar este post


Link para o post
Compartilhar em outros sites

... se eu quisesse que a letra que desse o gatilho para inserir a linha estivesse na 3 ou quinta coluna, caso eu aumente a planilha, devo alterar onde no código?

 

substitua esta linha:

If Target.Column <> 3 Then Exit Sub

por esta:

If Target.Column <> 3 And Target.Column <> 5 Then


Osvaldo

como disponibilizar arquivos neste fórum: abaixo da última postagem, clique em "Editor Completo" / "Selecionar arquivo..." / na sua máquina localize e clique no nome do arquivo que deverá estar compactado com extensão .zip

alternativa - hospede o arquivo em um site como www.sendspace.com >> é gratuito, sem cadastro, sem compactar, e depois coloque o link no seu post

dica - disponibilize amostra do seu arquivo com estrutura exatamente igual ao original

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi, markz. obrigado, não conhecia as fórmulas matriz.

estarei testando aqui.

 

Nos links abaixo, você tem mais informações sobre fórmula de matriz:

http://office.microsoft.com/pt-br/excel-help/criar-uma-formula-de-matriz-HP005200020.aspx

http://office.microsoft.com/pt-br/excel-help/diretrizes-e-exemplos-de-formulas-de-matriz-HA010228458.aspx

 

Markmzz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Responda via Facebook

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Quer postar a sua dúvida? Cadastre-se pois é rápido e fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora
Esse tópico é útil para você?
Então compartilhe e ajude outros internautas!
Entre para seguir isso  
Seguidores 0

O site BABOO está no ar para informar e ajudar o internauta de Windows. Este site foi publicado em 1999 por Aurélio "Baboo", engenheiro e um dos maiores especialistas brasileiros em Windows, que trabalha profissionalmente com esse sistema operacional desde 1987. Desde 2004 ele é premiado anualmente pela Microsoft como MVP (Most Valuable Professional) pela sua contribuição e ajuda à comunidade de usuários de Windows.

Em 2001 foi criado o
Fórum do BABOO para ajudar o internauta brasileiro a solucionar problemas e dúvidas sobre Windows, Segurança, Office, Hardware e outros temas. Desde 2010 a Microsoft também tem premiado o Mr.Million, administrador da área de Segurança do Fórum do BABOO, pelo seu incansável trabalho ajudando os internautas a remover vírus e malwares dos seus computadores. Atualmente ele é o único MVP brasileiro de Segurança em desktop.

O BABOO é o único site brasileiro coordenado por um especialista com reconhecimento internacional pela sua competência em Windows e que participa diariamente e ativamente nos comentários e discussões do site e fórum BABOO.