none
Salvar os dados um de baixo do outro. RRS feed

  • Pergunta


  • Olá feras do Excel!
    Gostaria da ajuda dos colegas para a criação de uma Macro,
     que a uns quinze dia vem me dando dor de cabeça. Para mim é difícil
    mas imagino que para vcs isso deva ser "galho fraco".
    É um preenchimento de um formulário que são salvos na célula (A4:R4) e que precisam ser migrados para outra plan,
    e toda vez que uma nova for criada, deva ser salva debaixo da já existente.
    É um seguinte eu gostaria de uma macro que colasse os dados da célula (A4:R4) da planilha "Proativo"
    para a planilha "Cadastro GERAL" a partir da célula A4 uma em baixo da outra.
     A planilha é essa: http://www.4shared.com/file/ILDa6GeB/PROATIVO_2013_-pronto.html
    sexta-feira, 22 de março de 2013 19:35

Respostas

  • Mauro,

    Quando for disponibilizar um exemplo, não envie o arquivo inteiro. Isso confunde as pessoas que querem te ajudar. Além disso você pode estar mostrando, sem querer, dados sigilosos da empresa em que trabalha. O ideal é você segregar o problema e disponibilizar. Dessa forma, obtém maiores chances de conseguir ajuda e a pergunta também se torna mais objetiva.

    Sobre sua pasta de trabalho: Existem muitas referências circulares. Elimine-as. As referências circulares são mostradas na barra de status. Ao selecionar a planilha POR RCC COLABORADOR -BAR, por exemplo, a barra de status mostra que a célula S32 possui uma referência circular. Corrija-a. Se após corrigi-la, o aviso de referência circular mudar, é porque outra célula da mesma planilha possui referência circular. Se não aparecer mais nenhum endereço, mas continuar o aviso de referência circular, é porque outra planilha da pasta de trabalho possui referência circular. Navegue entre todas elas e elimine essas referências. Fique atento também que as referências circulares podem estar em planilhas que você outrora pode ter ocultado.

    Sobre seu problema, experimente o código abaixo:

    Sub fExemplo()
        Dim lngLast As Long
        
        With ThisWorkbook
            With .Worksheets("Cadastro GERAL")
                lngLast = .Cells(.Rows.Count, "C").End(xlUp).Row + 1
            End With
            .Worksheets("Proativo").Range("A4:R4").Copy
            .Worksheets("Cadastro GERAL").Range("A" & lngLast).PasteSpecial xlPasteValues
        End With
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta mauro.com segunda-feira, 25 de março de 2013 01:12
    sábado, 23 de março de 2013 00:02
    Moderador

Todas as Respostas

  • Mauro,

    Quando for disponibilizar um exemplo, não envie o arquivo inteiro. Isso confunde as pessoas que querem te ajudar. Além disso você pode estar mostrando, sem querer, dados sigilosos da empresa em que trabalha. O ideal é você segregar o problema e disponibilizar. Dessa forma, obtém maiores chances de conseguir ajuda e a pergunta também se torna mais objetiva.

    Sobre sua pasta de trabalho: Existem muitas referências circulares. Elimine-as. As referências circulares são mostradas na barra de status. Ao selecionar a planilha POR RCC COLABORADOR -BAR, por exemplo, a barra de status mostra que a célula S32 possui uma referência circular. Corrija-a. Se após corrigi-la, o aviso de referência circular mudar, é porque outra célula da mesma planilha possui referência circular. Se não aparecer mais nenhum endereço, mas continuar o aviso de referência circular, é porque outra planilha da pasta de trabalho possui referência circular. Navegue entre todas elas e elimine essas referências. Fique atento também que as referências circulares podem estar em planilhas que você outrora pode ter ocultado.

    Sobre seu problema, experimente o código abaixo:

    Sub fExemplo()
        Dim lngLast As Long
        
        With ThisWorkbook
            With .Worksheets("Cadastro GERAL")
                lngLast = .Cells(.Rows.Count, "C").End(xlUp).Row + 1
            End With
            .Worksheets("Proativo").Range("A4:R4").Copy
            .Worksheets("Cadastro GERAL").Range("A" & lngLast).PasteSpecial xlPasteValues
        End With
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta mauro.com segunda-feira, 25 de março de 2013 01:12
    sábado, 23 de março de 2013 00:02
    Moderador
  • Meu amigo muito obrigado pela ajuda e pelos concelhos, vc realmente me tirou uma dor de cabeça...Mas se não for pedir muito, percebi que quando a macro é  executada abre a plan"Cadasto GERAL" e depois volta para a plan" proativo" e  gostaria apenas de que ao executar a macro ela permanecesse na mesma ("Proativo") porém somente os dados migrassem  para a plan "Cadastro GERAL". OK e mais uma vez muito obrigado.

    segunda-feira, 25 de março de 2013 01:12
  • Experimente algo como:

    Sub fExemplo()
        Dim lngLast As Long
        
        With ThisWorkbook
            Application.Goto .Worksheets("Cadastro GERAL").Range("A1")
            
            With .Worksheets("Cadastro GERAL")
                lngLast = .Cells(.Rows.Count, "C").End(xlUp).Row + 1
            End With
            .Worksheets("Proativo").Range("A4:R4").Copy
            .Worksheets("Cadastro GERAL").Range("A" & lngLast).PasteSpecial xlPasteValues
        End With
    End Sub



    Felipe Costa Gualberto - http://www.ambienteoffice.com.br


    segunda-feira, 25 de março de 2013 21:53
    Moderador