Compartilhar via

Inserir sequência de meses - via vba

Anônima
2014-05-11T10:46:34+00:00

Tenho uma lista de trabalhadores (NOME, ADMISSAO, DEMISSAO). Para cada trabalhador preciso - nova planilha - inserir todos os meses compreendidos entre a admissão e demissão, de cada trabalhador.

Seria necessário, na nova planilha, inserir o nome, admissão, demissão e o mês.

Essa informação se repetiria o número de meses correspondente ao período compreendido entre a admissão e a demissão, do trabalhador.

Alguém tem uma fórmula que atenda essa necessidade?

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários

10 respostas

Classificar por: Mais útil
  1. Anônima
    2014-05-14T19:50:27+00:00

    Caro Rafael;

    Abaixo tenho a tabela original.

    Minha intensão é que uma macro efetue a seguinte operação:

    Ou seja, para cada trabalhador relacionado na tabela1 seja inserido na tabela2 a sequencia de meses entre a sua admissão e a sua demissão, acompanhado da sua identificação.

    Grato,

    Só me diz uma coisa, pelo que você falou, são 400 nomes, portanto se criar uma rotina da forma que você quer, vai gerar 400 novas planilhas dentro do seu arquivo. A limitação de planilha do Excel é dada pela memoria do PC, mas independente de ser possível gerar as 400 planilhas, fico pensando da dificuldade que será trabalhar neste arquivo com essa quantidade de planilhas. É isso mesmo que você quer? Não seria melhor gerar um código que crie um novo arquivo para cada nome?

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2014-05-14T17:27:50+00:00

    Caro Rafael;

    Abaixo tenho a tabela original.

    Minha intensão é que uma macro efetue a seguinte operação:

    Ou seja, para cada trabalhador relacionado na tabela1 seja inserido na tabela2 a sequencia de meses entre a sua admissão e a sua demissão, acompanhado da sua identificação.

    Grato,

    Esta resposta foi útil?

    0 comentários Sem comentários
  3. Anônima
    2014-05-14T16:09:53+00:00

    Rafael;

    Agradeço a cooperação.

    Mas a minha necessidade é que todo o processo seja automatizado, visto que possuo uma lista com mais de 400 trabalhadores, para os quais preciso gerar a sequência.

    Grato,

    Caro Ronaldo.

    Não entendi então a sua necessidade. Você poderia explicar melhor e, se possível, colocar uma imagem de um modelo do resultado que você gostaria que ficassem as novas planilhas? E só para confirmar, você quer uma nova planilha ou um novo arquivo para cada funcionário?

    Esta resposta foi útil?

    0 comentários Sem comentários
  4. Anônima
    2014-05-14T14:47:23+00:00

    Rafael;

    Agradeço a cooperação.

    Mas a minha necessidade é que todo o processo seja automatizado, visto que possuo uma lista com mais de 400 trabalhadores, para os quais preciso gerar a sequência.

    Grato,

    Esta resposta foi útil?

    0 comentários Sem comentários
  5. Anônima
    2014-05-12T12:00:38+00:00

    Caro Ronaldo,

    Vou te propor uma resposta como sugestão para sua necessidade. Como eu não sei ao certo o layout que você deseja nas planilhas que serão criadas, fica difícil desenvolver o código VBA para criar um nova planilha formatando-a conforme a sua necessidade. Entretanto, o que sugiro fazer é criar uma planilha modelo que será nossa máscara a ser duplicada para somente alterar os nomes dos funcionários e calcular os meses entre admissão e demissão.

    Observe minha solução e altere as referências conforme a sua necessidade:

    1. A planilha onde estarão os nomes dos empregados eu chamei de "Lista de funcionários" e está no padrão de Layout de colunas na ordem de Nº, Nome, Admissão, Demissão. Observe a imagem abaixo:

    1. A planilha modelo deve se chamar "Modelo" e montei ela conforme layout da imagem abaixo:

    O layout da planilha modelo, você pode montar como quiser. Eu coloquei ai uma sugestão de fórmulas para atender a sua necessidade de mostrar todos os meses em que o funcionário trabalhou na empresa. Você só deve respeitar o nome do funcionário na célula D2, pois essa é a referência que está no código VBA abaixo.

    1. Aperte Alt + F11, crie um módulo e copie e cole o código abaixo, que gerará uma macro chamada "Criar_listas":

    Sub Criar_listas()

    Dim Funcionário As String

    Sheets("Lista de Funcionários").Select

    Range("B2").Select

    Do Until ActiveCell.FormulaR1C1 = ""

        Funcionário = Left(ActiveCell.Offset(0, 0).Range("A1"), 31)

    Sheets("Modelo").Select

    Sheets("Modelo").Copy After:=Sheets(2)

    Sheets("Lista de Funcionários").Select

    Selection.Copy

    Sheets("Modelo (2)").Select

    Range("D2").Select

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

    :=False, Transpose:=False

    Sheets("Modelo (2)").Select

    Sheets("Modelo (2)").Name = Funcionário

    Sheets("Lista de Funcionários").Select

    ActiveCell.Offset(1, 0).Range("A1").Select

    Loop

    End Sub

    1. Agora basta rodar a macro, ou crie um botão na planilha Lista de funcionários e atribua esta macro ao botão.

    Faça o teste ai e comente se atendeu sua necessidade.

    Se for útil não esqueça de marcar como útil a resposta!

    Abraços!

    Esta resposta foi útil?

    0 comentários Sem comentários