Excel 2007: Inserir linha automaticamente se a linha anterior for preenchida

1

Eu quero fazer uma planilha que possa ser usada como um recibo impresso para os clientes, este é o layout básico:

  • Detalhes de contato do cliente (nome, endereço, etc), estes são campos fixos que podem estar vazios
  • Linha de cabeçalho: "Item | Qtd. | preço | total"
  • Tabela dinâmica contendo qualquer número de linhas, uma para cada artigo que o cliente compra
  • Linha de rodapé contendo o número total de artigos e o valor total

O que eu estou com dificuldades é como fazer a tabela dinâmica funcionar. Atualmente eu manualmente inserir uma linha para cada novo artigo, mas isso é complicado em situações em que é muito ocupado. Eu gostaria que o excel exibisse uma linha em branco por padrão e, em seguida, inserisse uma próxima linha sempre que a linha anterior contivesse dados, movendo automaticamente a linha de rodapé uma linha para baixo e atualizando a fórmula usada para calcular a quantidade total. e quantidade.

Isso é possível?

    
por Alex 01.11.2012 / 12:58

1 resposta

1

Assim como um aviso para você e qualquer outro que tente fazer isso:

Agora você deve pensar em:

  • com que frequência vou usar isso por cliente?
  • quantos clientes existem?
  • como vou inserir esses itens?
  • quantos itens diferentes existem?

Estas são as perguntas mais importantes. Eu fiz exatamente exatamente , o que você está tentando fazer, para uma empresa muito pequena, com um aroud 3 recibos por mês.

Como sempre, por favor, rápido & cheap & excelOnly. No entanto, ninguém fez essas perguntas acima. Principalmente por causa do barato & excelOnly. E agora, é tão óbvio quanto tempo é perdido, sempre que um recibo é pesquisado, corrigido, mas principalmente quando os itens são adicionados. Sem mencionar quantas formas diferentes do mesmo item existem. Corrigir isso com o excel é, no entanto, possível, mas IMHO, uma dor real. Convenceu o cutomer também, um EPR agora está configurado.

Esta é uma tarefa de banco de dados. É como um dos melhores exemplos de uma tarefa de banco de dados!

Além disso, isso pode até valer um sistema ERP para pequenas empresas. Aqui na Alemanha, eu recomendo-lhe o JTL-Wawi.

Mas, se isso for muito grande, você deve pensar em usar o Access.

Algumas vantagens:

  • você pode gerenciar seus clientes
  • você pode gerenciar seus itens
  • você pode mover seu comportamento dymanico para acessar
  • você pode gerenciar seus recibos com facilidade
  • você ainda pode usar o excel como seu sistema de saída

Como isso funcionaria?

Você teria algumas tabelas, para clientes e itens, e para recibos. A tabela de recibo conectaria um cliente a seus itens e outros atributos relevantes de recibo.

Em seguida, você pode criar um relatório projetado para um recibo básico e imprimi-lo a partir do acesso. Ou use o Excel para selecionar um recibo, obter os dados e imprimi-los. Como os dados seriam predeterminados, você saberia quantas linhas / cols estão chegando e qual é o contexto delas.

No entanto - esta roda já foi inventada tantas vezes, então você deve olhar para os já existentes;)

Editar

Uma solução baseada em sua solicitação de comportamento pode usar essa tentativa aqui:

link

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Column = clngColumnRightToLastGrade Then
    Application.EnableEvents = False
    'offset selection, one row down, two cols to left
    Target.EntireRow.Insert (xlShiftDown) 'insert new row
    Target.Offset(1, -2).Select
    Application.EnableEvents = True
  End If
End Sub

Você poderia, é claro, usar o evento Change e talvez seja necessário limitar esse comportamento ao alcance máximo de sua lista dinâmica ou à planilha dele.

Ou apenas acesse uma macro por tecla de atalho para executar esta linha aqui:

Target.EntireRow.Insert (xlShiftDown) 'insert new row

Você precisará determinar a célula atualmente selecionada para ter o intervalo Target .

    
por 01.11.2012 / 14:28