Jump to content
Sign in to follow this  
Kubrick

VBA Excel - copy paste entre diferente ficheiros excel

Recommended Posts

Ok malta. Eu tenho um ficheiro chamado FicheiroPai que tem 4 sheets: dataOeste, dataLeste, dataSul e dataNorte. Todos os dias de manhã eu emito, a partir dum programa, 4 ficheiros excel com os nomes Oeste, Leste, Sul e Norte. Eles contêm dados em colunas. Guardo-os numa pasta. Aquilo que tenho feito à pata é abrir os 4, e fazer copy duma certa coluna e depois paste dessa coluna (A1:A10) na sheet correspondente que existe no tal FicheiroPai.

Aquilo que quero fazer é uma macro no FicheiroPai, que ao corrê-la faça isto:

- Encontre os 4 ficheiros criados, que os abra, que copie em cada um deles determinada coluna, e que faça paste dessa informação na célula A1 de cada sheet do FicheiroPai, isto é, que abra por exemplo o ficheiro Oeste, copie a coluna A1:A10 da Sheet1 desse ficheiro, e faça paste dessa coluna na sheet dataOeste que existe no FicheiroPai.

Como sou alto noob, resolvi começar apenas com um exemplo para um ficheiro, para ver se percebia a coisa, mas estou encalhado pois a macro que fui construindo (com alguns tutorials daqui e dali) encontra e abre o ficheiro Oeste mesmo que este esteja fechado, selecciona o range que defini mas depois fica ali parado, e não faz mais nada, não faz o paste na sheet dataOeste do FicheiroPai.

Sub extracta()

'1º - Preparar o Excel:

Application.EnableEvents = False

Application.DisplayAlerts = False

Application.ScreenUpdating = False

'2º - A macro está gravada no ficheiro FicheiroPai e o ficheiro Oeste

'está em C:\Desktop. Agora a macro vai verificar se o ficheiro da

'Oeste está aberto, se nao estiver então vai abri-lo:'

On Error GoTo b:

Windows("Oeste.xls").Activate

GoTo c:

b:

ChDir "C:\Desktop"

Workbooks.Open Filename:="C\Desktop\Oeste.xls"

c:

Sheets("Sheet1").Select

Range("A1:A10").Select

Selection.Copy

'Reactiva o ficheiro FicheiroPai.xls:

Windows("FicheiroPai.xls").Activate

'Selecciona a sheet onde queremos fazer paste.

Sheets("dataOeste").Select

'Selecciona a célula onde queremos começar a fazer paste.

Range(“A1”).Select

'Faz paste values do range do ficheiro Oeste.xls para o ficheiro FicheiroPai.xls na sheet dataOeste,

Selection.PasteSpecial Paste:=xlValues

'Vai a A1, limpa clipboard, e guarda o ficheiro FicheiroPai

Range("A1").Select

Application.CutCopyMode = False

ActiveWorkbook.Save

' Re-set Excel

Application.EnableEvents = True

Application.DisplayAlerts = True

Application.ScreenUpdating = True

End Sub

Com eréctil expectativa de que um génio me ajude nesta.

Sempre vosso.

K.

28 views. Nenhum bitaite?

E se eu provocar os do norte, com um "tens um curitas?"

Tradução para português "tens um penso rápido?

Share this post


Link to post
Share on other sites

Eu também não percebo muito, mas

No ponto

Sheets("Sheet1").Select

Range("A1:A10").Select

Selection.Copy

ele faz o copy? Fica com aquele "tracejado" a piscar?

Senão, tenta simplesmente

Sheets("Sheet1").Select

Range("A1:A10").copy

Share this post


Link to post
Share on other sites

Esse problema já foi resolvido entretanto, tinha a ver com as aspas, como eu copiei um exemplo da net, bastou apagar e escrever com o teclado que já deu.

Agora tenho outro stress que é, consigo fazer para Oeste, mas queria que a macro fizesse os quatro ao mesmo tempo, em vez de estar a criar 4 macros com shorcut keys para cada uma

Share this post


Link to post
Share on other sites

Antes que digas mal da minha "view" só aqui vim para limpar este tópico do meu Today.

Desde já, peço desculpa pela inconveniência e confusão que lhe possa ter causado.

Share this post


Link to post
Share on other sites

Cria as 4 diferentes, e lança um sub que corra as 4 e esse é o que lanças

Share this post


Link to post
Share on other sites
Cria as 4 diferentes, e lança um sub que corra as 4 e esse é o que lanças

Não tinha pensado nessa. Thanks

Água uma macro para colar os gráficos excel como imagem no corpo de um email

Existe?

Share this post


Link to post
Share on other sites

Directo para o body não conheço, é capaz de existir.

Outra hipótese que tens é fazer o Export (acho q é isso, já não mexo com VBA há que tempos) para um ficheiro temporário (caminho hard-coded, como se gosta 14.gif ) e depois fazeres add desse ficheiro (provavelmente terá que ser em html), ou seja, algo do género de:

"<img src="caminho hard-coded">"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.