Notifications
Clear all

Copiando de um banco de dados e colando no Excel.

19 Posts
2 Usuários
0 Reactions
2,200 Visualizações
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Bom dia prezados colegas

Venho novamente solicitar ajuda para um problema que estou tentando resolver mas como ainda não tenho muito conhecimento em VBA não consigo resolver sozinho.

Tenho esta planilha onde os dados são retirados do banco de dados da empresa e depois colo nesta planilha na aba nomeada como COLAR DADOS.

As informações ficam toda embaralhada após colar no Excel consegui fazer uma macro utilizando o gravador de macro e ordenar as informações.

Porém o problema é que preciso fazer o seguinte:

1- Copiar os dados que estão na plan COLAR DADOS e colar na Plan DATA BASE porém necessito que seja copiado apenas as linhas onde constam as informações PEQUENO, MÉDIO e GRANDE e depois inserir a data do dia na coluna H.
Lembrando que essa tarefa vai ser diária então necessito que após copiar as informações sempre pule uma linha pra baixo(Ultima linha em branco) para não haver problema quando for efetuar a colagem dos dados no dia seguinte.

2- Copiar os dados listados da plan COLAR DADOS e copiar para a plan FORMULÁRIO porém necessito copiar apenas NÚMERO e VALOR

Exemplo
Se a informação da coluna A da plan COLAR DADOS for PEQUENO copiar apenas a informação NÚMERO e VALOR e colar na plan FORMULÁRIO na respectiva coluna.

Necessito fazer o mesmo processo com as informações MÉDIO e GRANDE.

Tentei fazer tudo isso utilizando o gravador de macro mas não obtive sucesso.

Espero que algum colega do fórum possa me ajudar nesta tarefa.

Desde já agradeço de coração.

Forte abraço.

 
Postado : 19/02/2014 6:19 am
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Bom dia alexandrevba

Muito obrigado pela resposta.
Agora está perfeito!!
Estava analisando a macro que você criou para tentar entender que foi feito e percebi que se eu alterar o valor do campo .Offset(8) consigo trocar a linha onde a informação será copiada.
É isso mesmo??
Nossa estou muito contente que consegui terminar essa plan!!
Mais uma vez obrigado!! :D

Abraços.

 
Postado : 26/02/2014 9:49 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Estava analisando a macro que você criou para tentar entender que foi feito e percebi que se eu alterar o valor do campo .Offset(8) consigo trocar a linha onde a informação será copiada.
É isso mesmo??

Sim!!!

Eu fico feliz que resolveu sua dúvida! :D

Att

 
Postado : 26/02/2014 10:06 am
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Boa noite
Caso alguém que tenha o mesmo problema que eu tive segue o código abaixo
Obrigado por me ajudar mais uma vez alexrandevba.
Abraço a todos.

Sub Deletar()
Dim lRow As Long

   Application.ScreenUpdating = False
    Sheets("FORMULARIO").Select
    Range("B9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Range("D9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Range("F9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Range("L9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Range("N9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Range("P9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Range("V9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Range("X9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Range("Z9").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Application.CutCopyMode = False
    Sheets("FORMULARIO").Select
    Range("B9").Select
    
    With Sheet1
        .AutoFilterMode = False
        lRow = .Range("A" & Rows.Count).End(xlUp).Row
        .Range("A1:G" & lRow).AutoFilter Field:=1, Criteria1:="PEQUENO"
        .Range("B2:B" & lRow).Copy Worksheets("FORMULARIO").Range("B" & Rows.Count).End(xlUp).Offset(8)
        .Range("G2:G" & lRow).Copy Worksheets("FORMULARIO").Range("D" & Rows.Count).End(xlUp).Offset(8)
        .Range("E2:E" & lRow).Copy Worksheets("FORMULARIO").Range("F" & Rows.Count).End(xlUp).Offset(8)
        .Range("A1").AutoFilter
    End With
    With Sheet1
        .AutoFilterMode = False
        lRow = .Range("A" & Rows.Count).End(xlUp).Row
        .Range("A1:G" & lRow).AutoFilter Field:=1, Criteria1:="MEDIO"
        .Range("B2:B" & lRow).Copy Worksheets("FORMULARIO").Range("L" & Rows.Count).End(xlUp).Offset(8)
        .Range("G2:G" & lRow).Copy Worksheets("FORMULARIO").Range("N" & Rows.Count).End(xlUp).Offset(8)
        .Range("E2:E" & lRow).Copy Worksheets("FORMULARIO").Range("P" & Rows.Count).End(xlUp).Offset(8)
        .Range("A1").AutoFilter
    End With
    With Sheet1
        .AutoFilterMode = False
        lRow = .Range("A" & Rows.Count).End(xlUp).Row
        .Range("A1:G" & lRow).AutoFilter Field:=1, Criteria1:="GRANDE"
        .Range("B2:B" & lRow).Copy Worksheets("FORMULARIO").Range("V" & Rows.Count).End(xlUp).Offset(8)
        .Range("G2:G" & lRow).Copy Worksheets("FORMULARIO").Range("X" & Rows.Count).End(xlUp).Offset(8)
        .Range("E2:E" & lRow).Copy Worksheets("FORMULARIO").Range("Z" & Rows.Count).End(xlUp).Offset(8)
        .Range("A1").AutoFilter
    End With
    
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub
 
Postado : 28/02/2014 5:26 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

 
Postado : 01/03/2014 10:13 am
Página 2 / 2