locked
dase de dados em excel RRS feed

  • Pergunta

  • Boas, venho aqui pedir uma ajudinha pois tenho ja os olhos tortos
    portanto e o seguinte:
    Tenho uma base de dados com a entrada de facturas a pagamento onde configura em colunas, o nome do fornecedor, data factura, nº, valor data de entrada,

    todos os dias sempre que chega uma nova factura acrescento

    Mais tarde faço um seleçcao de pagamentos onde vou ter que dar baixa das facturas que foram enviada para o pagamento criando assim uma nova base de dados com facturas pagas

    ou seja é uma base exatamente igual so tem mais uma coluna que é a data de pagamento,
    ora o que pretendia saber se é possivel é
    assim que eu selecionar as facturas que propus pagar colocando a data do pagamento esta desaparecer automaticamente da dase 1 e entrar na base 2 sem que tenha que fazer um corte e paste. bastando apenas colocar a data?
    sera que alguem me consegue ajudar?

    obg
    quarta-feira, 5 de agosto de 2009 18:15

Todas as Respostas

  • Um opção é usares um código como este abaixo, como evento da planilha (folha) Base1.
    Private Sub Worksheet_Change(ByVal Target As Range)
        'Testar se foi introduzido um valor na coluna D
        If Target.Column = 4 Then
            'Testar se o valor inserido é uma data
            If IsDate(Target.Value) Then
            'Determinar a linha da planilha Base2 que receberá as informações de Base1
            InsertRow = Plan2.Cells(Rows.Count, 1).End(xlUp).Row + 1
            'Mover o intervalo da coluna A até a coluna D de Base1 para a primeira
            'célula vazia da coluna A de Base2
            Range(Cells(Target.Row, 1), Cells(Target.Row, 4)).Cut Plan2.Cells(InsertRow, 1)
            End If
        End If
    End Sub

    [ ]s
    Adilson Soledade - MOS
    quinta-feira, 6 de agosto de 2009 01:16
  • Boas:

    Adaptei este código às minhas necessidades e funcionou quase na perfeição.

    Eu tenho algo semelhante ao que anaguinapo indicou.

    Só que no meu caso, como ficaria se em vez de colocando a "data" do pagamento esta desaparecer automaticamente da base 1 e entrar na base 2 ...
       colocasse uma "hora" ??????     e se em vez de fazer desaparecer todos os elementos da linha ...
       fizesse desaparecer para a base 2 os dados inseridos nas colunas 1, 2, 3 e 6, 7, 8 ?????  mantendo as formatações existentes naquelas células da base 1?

    Peço desculpa por aproveitar esta discussão para mim, mas tentei fazer estas readaptações e já não funcionou.  

    []s
    domingo, 6 de setembro de 2009 17:01
  • OLa adilson
    em 1º lugar quero agradecer a disponibilidade imediata mas...
    embora eu ate tenha conhecimentos de excel um pouco acima da media nao sao tao elevados como me parece ser os seus logo a fornula que foi colocado pelo adilson ja esta um pouco acima das minhas capacidades, se podesse coloca-la com uma linguagem um pouco mais simples eu agradecia
    e am portug pois sou um zero a esquerda em ingles.
    Obrigado
    vou tentar anexar uma base de dados pareceida com a que tenho para assim poder ver melhor.
    ENTRADA DE FACTURAS                 FOLHA1   FACTURAS A PAGAMENTO  FOLHA2
    NIF FORNECEDOR VALOR DT FACTURA DT ENTRADA A PAGTº FUNC   NIF FORNECEDOR VALOR DT FACTURA DT ENTRADA A PAGTº FUNC
    124125465 FFFF 235,31 12-05-2008 12-05-2009   a                
    112345577 kkkk 12,45 15-Jan 12-Mai   b                

     
    portanto o que pretendo e que ao preecher a coluna da data a pagamento ela transfira automaticamente para a tabelo da folha 2
    sendo que a tabela da folha 2 vai sendo preenchida a medida que as facturas vai ficando a pagamento sem que tenha que fazer um corte e cole. ou preencher tudo de movo e depois eliminar a linha da folha 1
       
                   
    domingo, 6 de setembro de 2009 21:35
  • Bom dia anaguinapo:
    Peço desculpa por vir interferir no seu pedido de ajuda.
    Como também é um código que me faz jeito tentei utiliza-lo no meu projecto.

    Funciona na perfeição, no entanto tem um senão...
    Se voçê tiver formatações nas célular a transferir, elas vão ser transferidas também e a Folha1 vai perder essas formatações. De resto funciona bem.
    Se voçê não tem formatações nas celulas eu posso ajudar.
    Abraço
    quarta-feira, 9 de setembro de 2009 12:08
  • Ola Alexandre Amado, boa noite
    tanto na minha folha 1 como na dois nao tenho formaçao nenhuma (Com formulas) apenas funciona como base de inserção
    onde vou lancando as facturas que diariamente me chegam do expediente, nada mais na folha 2 e exatamente igual a folha 1 apenas com uma coluna preencida a mais que é a data de pagamento

    as unicas formataçoes que existem é o formado dos numeros, separação de milhares, a moeda a data de resto nada mais
    se me poder ajudar agradeço imenso, pois ja recorri a tudo o que estava ao meu alcançe mas ainda nao obtive ajuda alguma. continuado diariamente no meu corte e cola. que se torna muito cansativo pois ja vou nas 60000 facturas.
    cumprimentos

    Anabela
    quarta-feira, 9 de setembro de 2009 22:06
  • Olá Anabela.
    Antes demais quero dizer que não sou técnico nesta área, e sendo assim penso ser bom voçê testar isto numa folha separada e  semelhante, antes de passar o código para a folha com que trabalha.
    Bem,
    - depois de criar essas novas folhas semelhantes à folha com que trabalha, vá à aba da folha 1 e clique com a tecla direita do rato. Abre uma janela e um dos itens diz - Ver código. Clique aí.
    - vai abrir uma nova janela com duas pequenas do lado esquerdo e uma grande do lado direito. Nesta grande vc cole o código que o Adilson lhe mandou:

    Private Sub Worksheet_Change(ByVal Target As Range)
        'Testar se foi introduzido um valor na coluna D
        If Target.Column = 4 Then
            'Testar se o valor inserido é uma data
            If IsDate(Target.Value) Then
            'Determinar a linha da planilha Base2 que receberá as informações de Base1
            InsertRow = Plan2.Cells(Rows.Count, 1).End(xlUp).Row + 1
            'Mover o intervalo da coluna A até a coluna D de Base1 para a primeira
            'célula vazia da coluna A de Base2
            Range(Cells(Target.Row, 1), Cells(Target.Row, 4)).Cut Plan2.Cells(InsertRow, 1)
            End If
        End If
    End Sub

    Agora repara:

    NA terceira linha deste código tem = 4 Then. Este 4  não é mais do que a coluna onde voçê vai digitar a sua data. Se digitar a data do pagamento na quinta ou na sexta coluna, vç altera este digito para 5 ou 6 conforme o caso. (Foi isso que eu fiz).
    Na décima linha do código vç tem novamente um 4. Este quatro indica a coluna até onde o código vai copiar. Aí se quizer copiar até à sexta coluna, vç altera este dígito para 6.

    Seguindo o exemplo que vç mandou, se quer inserir a data na coluna seis e quer passar os elementos da linha até à coluna sete ... só tem de mudar o primeiro 4 para 6 e o segundo 4 para 7. Se quizer passar os elementos até à coluna seis ... mantenha o primeiro digito em 6 e altere o segundo para 6.

    Se nas abas das folhas de cálculo tiver no mes diferentes de Folha1 e Folha2, no código tem de substituir nas linhas sete e dez do código o nome Plan.2 para o nome da sua segunda folha (a que vai receber os valores).

    E é isto. Espero ter ajudado. Se tiver alguma dificuldade meu e-mail é amadosgest@hotmail.com .

    Agora atenção !!!! Todas as formatações que as linhas tiverem são transferidas com os valores para a segunda folha e a primeira fica sem formatações.
    []s 

    quinta-feira, 10 de setembro de 2009 16:14