Notifications
Clear all

Copiar celulas

20 Posts
3 Usuários
0 Reactions
3,877 Visualizações
(@cybertica)
Posts: 43
Trusted Member
Topic starter
 

Boas sou um novato em VBA, gostava de saber como copiar celulas de uma folha para outra através de código vba.

Obrigado desde já pelo tempo despendido.

 
Postado : 15/11/2012 1:05 pm
(@hronconi)
Posts: 314
Reputable Member
 

Veja mais exemplo procurando nos tópicos do fórum.

Caso queira copiar por exemplo a Célula B4 da Plan2 para a célula B4 da Plan1 execute uma macro com o seguinte código:

    Sheets("Plan1").Range("B4").Value = Sheets("Plan2").Range("B4").Value
 
Postado : 15/11/2012 1:32 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A duvida poderia ser melhor detalhada, pois existem inumeras formas de se fazer o que pretende.

Alem da dica do colega hronconi, tambem poderia ser :

Supondo que queremos copiar as celulas "A3 a A14" da plan1 para a Celula C1 da plan2
Worksheets("Plan1").Range("A3:A14").Copy Destination:=Worksheets("plan2").Range("C1")

Ressaltando que como colocou "copiar celulas de uma folha para outra", estou supondo que estas "folhas" estão na mesma pasta.

[]s

 
Postado : 15/11/2012 1:53 pm
(@cybertica)
Posts: 43
Trusted Member
Topic starter
 

Boas ok peço desculpa pela falta de informação

passo a explicar tenho uma folha "Lançamento" onde quero copiar algumas celulas para outra folha "Registos-Receitas_Despesas".

Folha "Lançamento" Celulas: Y2,AB2,AC2 até AK2.
Folha "Registos-Despesas_Receitas" Celulas: A2,B2, até N2.

Após isto acontecer copiar especial valores e procurar a linha abaixo para futuros registos.

Obrigado

 
Postado : 15/11/2012 3:43 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cybertica, como não especificou os Ranges de Destino, fica um pouco dificil, mas se seguir as dicas acima, é só adaptar, por exemplo:

Worksheets("Lançamento").Range("Y2").Copy Destination:=Worksheets("Registos-Receitas_Despesas").Range("VOCE NAO DEFINIU")

Worksheets("Lançamento").Range("AC2:AK2").Copy Destination:=Worksheets("Registos-Receitas_Despesas").Range("VOCE NAO DEFINIU")

[]S

 
Postado : 15/11/2012 8:08 pm
(@cybertica)
Posts: 43
Trusted Member
Topic starter
 

Ok os ranges de distino estão na folha "Registos-Despesas_Receitas"

mas estou a apanhar o exemplo, gostaria tabem quando copia-se cola-se especialValores, e que na folha "Registos-Despesas_Receitas" ele procura-se a linha abaixo
vazia, após tudo isto ele iria apagar as ranges da Folha"Lançamento"

Obrigado

 
Postado : 16/11/2012 3:33 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Ok os ranges de distino estão na folha "Registos-Despesas_Receitas"

mas estou a apanhar o exemplo, gostaria tabem quando copia-se cola-se especialValores, e que na folha "Registos-Despesas_Receitas" ele procura-se a linha abaixo
vazia, após tudo isto ele iria apagar as ranges da Folha"Lançamento"

Obrigado

Cyber, o ideal seria você montar um exemplo reduzido para podermos analisar melhor, como estamos lidando com Ranges precisamos ter conhecimento correto dos endereços.
Só por estas informações fica dificil criar alguma rotina especifica.
passo a explicar tenho uma folha "Lançamento" onde quero copiar algumas celulas para outra folha "Registos-Receitas_Despesas".
Folha "Lançamento" Celulas: Y2,AB2,AC2 até AK2.
Folha "Registos-Despesas_Receitas" Celulas: A2,B2, até N2

Você cita Ranges fixos, então precisamos ver como está o Layout.

[]s

 
Postado : 16/11/2012 8:10 am
(@cybertica)
Posts: 43
Trusted Member
Topic starter
 

Ok vou enviar

Mas ainda está em contrução.
Agora o que eu quero copiar está nas ranges certas.

 
Postado : 16/11/2012 11:23 am
(@cybertica)
Posts: 43
Trusted Member
Topic starter
 

Boas

Sendo eu um novato nisto, tenho este código assim:

Private Sub bT_Gravar_Click()

If Worksheets("Lançamento").Range("AM2") = "" Then
MsgBox "TIPO DE MOVIMENTO NÃO ESTÁ PREENCHIDO!", vbExclamation
Exit Sub
End If

Worksheets("Lançamento").Range("AF2").Copy Destination:=Worksheets("Registos").Range("B9")
Worksheets("Lançamento").Range("AI2").Copy Destination:=Worksheets("Registos").Range("E9")
Worksheets("Lançamento").Range("AJ2").Copy Destination:=Worksheets("Registos").Range("F9")
Worksheets("Lançamento").Range("AM2").Copy Destination:=Worksheets("Registos").Range("I9")
Worksheets("Lançamento").Range("AN2").Copy Destination:=Worksheets("Registos").Range("J9")
Worksheets("Lançamento").Range("AO2").Copy Destination:=Worksheets("Registos").Range("K9")
Worksheets("Lançamento").Range("AP2").Copy Destination:=Worksheets("Registos").Range("L9")
Worksheets("Lançamento").Range("AQ2").Copy Destination:=Worksheets("Registos").Range("M9")
Worksheets("Lançamento").Range("AR2").Copy Destination:=Worksheets("Registos").Range("N9")
Worksheets("Lançamento").Range("AS2").Copy Destination:=Worksheets("Registos").Range("O9")
Worksheets("Lançamento").Range("AT2").Copy Destination:=Worksheets("Registos").Range("P9")
Worksheets("Lançamento").Range("AU2").Copy Destination:=Worksheets("Registos").Range("Q9")
Worksheets("Lançamento").Range("AV2").Copy Destination:=Worksheets("Registos").Range("R9")



MsgBox "Dados Gravados com sucesso"
End Sub

gostava agora que ao copiar ele copia-se especial valores e que encontra-se a ultima linha preenchida

Obrigado desde já

 
Postado : 18/11/2012 1:32 pm
(@hronconi)
Posts: 314
Reputable Member
 

Cybertica,

Fiz algumas alterações na sua planilha.

Abraço,

Henrique Ronconi

 
Postado : 19/11/2012 10:23 am
(@cybertica)
Posts: 43
Trusted Member
Topic starter
 

hronconi

Está optima mas não está a colar os valores da folha "Lançamento"

o que achas que possa ser?

 
Postado : 19/11/2012 5:20 pm
(@cybertica)
Posts: 43
Trusted Member
Topic starter
 

boas o código está optimo mas não está a colar os valores o que eu fiz de mal?
Obrigado

 
Postado : 19/11/2012 5:48 pm
(@cybertica)
Posts: 43
Trusted Member
Topic starter
 

hronconi

Está optima mas não está a colar os valores da folha "Lançamento"

o que achas que possa ser?

 
Postado : 19/11/2012 7:21 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Cyber, fiz os testes no modelo do ronconi e está funcionando corretamente, veja que os dados lançados no Formulário vão para o :

Range Nomeado :
R_lcto - que se encontra na Aba Lançamento nos Ranges de AE2 até AV2.
Se quiser copiar todos os dados tem de completar as formulas nestes Ranges.

[]s

 
Postado : 19/11/2012 7:36 pm
(@cybertica)
Posts: 43
Trusted Member
Topic starter
 

Ok Muito obrigado pelo tempo despendido

Ficou optimo, mas as msg que eu tinha colocado já lá não estão gostava simplesmente de colocar a informação que o registo tinha sido gravado.
Obrigado

 
Postado : 20/11/2012 5:32 am
Página 1 / 2