Condividi:        

copia da alcune colonne da un file all'altro

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

copia da alcune colonne da un file all'altro

Postdi tecnuf » 05/01/16 20:32

ho un numero importante di files sui quali vorrei andare a copiare alcune colonne .
Ad esempio dal file Pluto vorrei copiare queste colonne sul file pippo:
le colonne del 2^ foglio di Pluto (colonne G,H;I;J;K;L a partire dalla 3^riga inclusa in poi)
sulle colonne corrispondenti di pippo, e cosi per tutti i fogli dal 2^ al 35^ incluso.
La copia che devo fare è solo dei valori (testi o numeri che siano, ma senza la formattazione o altro).
Ogni foglio che devo andare a copiare è protetto, così come quello su cui devo andare a scrivere.
è possibile "inventare " qualche macro ? o è un miraggio?
windows 8-Office2007
tecnuf
Utente Junior
 
Post: 18
Iscritto il: 31/12/15 10:22

Sponsor
 

Re: copia da alcune colonne da un file all'altro

Postdi ricky53 » 06/01/16 00:57

Ciao,
prova ad eseguire i passi che ti necessitano attivando il registratore di macro.

Fai alcuni dei passi descritti, ferma il registratore di macro e ... allega il codice ottenuto insieme ad un file di esempio e forse insieme potremo arrivare ad una soluzione.

La protezione è con password (PSW)?
Per il file di esempio: proteggi senza PSW o metti una PSW diversa da quella reale
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: copia da alcune colonne da un file all'altro

Postdi tecnuf » 06/01/16 08:49

ecco il codice ottenuto facendo la registrazione di macro,
con questa ho copiato da un file ad un altro i primi due fogli, anzi il 2^ e il 3^, devo farlo per tutti i fogli dal 2^ al 35^
per tanti files

Codice: Seleziona tutto
Sub copiacolonnedafile()
'
' copiacolonnedafile Macro
'

'
    Range("G3:L100").Select
    Selection.Copy
    Windows("COMbase30.xlsm").Activate
    Range("G3").Select
    ActiveSheet.Paste
    Windows("COM5010.xlsm").Activate
    Sheets("60600 APPLICAZIONE E").Select
    ActiveWindow.SmallScroll Down:=-15
    Range("G3:L100").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("COMbase30.xlsm").Activate
    Sheets("2 0").Select
    ActiveWindow.ScrollRow = 88
    ActiveWindow.ScrollRow = 83
    ActiveWindow.ScrollRow = 79
    ActiveWindow.ScrollRow = 74
    ActiveWindow.ScrollRow = 65
    ActiveWindow.ScrollRow = 49
    ActiveWindow.ScrollRow = 31
    ActiveWindow.ScrollRow = 13
    ActiveWindow.ScrollRow = 3
    Range("G3:L100").Select
    ActiveSheet.Paste
    Windows("COM5010.xlsm").Activate
    Application.CutCopyMode = False
End Sub
windows 8-Office2007
tecnuf
Utente Junior
 
Post: 18
Iscritto il: 31/12/15 10:22

Re: copia da alcune colonne da un file all'altro

Postdi Anthony47 » 07/01/16 15:14

Dal codice registrato si deduce che il file "COMbase30.xlsm" e' quello di destinazione, mentre il file "COM5010.xlsm" e' quello di origine; e' di difficile interpretazione la frase "copiare [...] le colonne del 2^ foglio [del file di origine] (colonne G,H;I;J;K;L a partire dalla 3^riga inclusa in poi) sulle colonne corrispondenti [del file di destinazione]"
Nell'ipoesi che tu voglia copiare dal 2° foglio di Origine al 2° foglio di Destinazione, poi da 3° foglio di Origine al 3° foglio di Destinazione, e cosi' via, allora probabilmente potrai usare:
Codice: Seleziona tutto
Sub copia222()
'
' copiacolonnedafile Macro
'
Windows("COM5010.xlsm").Activate
For i = 2 To 35
    Sheets(i).Range("G3:L10000").Copy
    Workbooks(COMbase30.xlsm).Sheets(i).Unprotect
    Workbooks(COMbase30.xlsm).Sheets(i).Range("G3").PasteSpecial Paste:=xlPasteValues
    Workbooks(COMbase30.xlsm).Sheets(i).Protect
Next i
Application.CutCopyMode = False
End Sub

Ciao

Edit: Attenzione, anche COMbase30.xlsm (o comunque si chiami il file) va incluso tra le Virgolette ("COMbase30.xlsm")!
Anthony
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: copia da alcune colonne da un file all'altro

Postdi tecnuf » 10/01/16 08:34

mi da errore su questa stringa :

Workbooks(PIPPO.xlsm).Sheets(i).Unprotect
mi dice errore run time 424 Necessario oggetto.

per applicare la macro l'aveo messa sul file da cui dovevo copiare e aperto entrambi i file.
i files sono nella stella cartella, non è che devo mettere tutto il percorso del file o basta
il nome?
windows 8-Office2007
tecnuf
Utente Junior
 
Post: 18
Iscritto il: 31/12/15 10:22

Re: copia da alcune colonne da un file all'altro

Postdi Anthony47 » 10/01/16 17:03

Puoi pubblicare l'intera macro?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: copia da alcune colonne da un file all'altro

Postdi tecnuf » 10/01/16 17:38

in pratica è la tua macro con nome file sostituito

[code][/code]
Sub copiafile()
'
' copiacolonnedelfile Macro
'
Windows("Pluto.xlsm").Activate
For i = 2 To 35
Sheets(i).Range("G3:L10000").Copy
Workbooks(Pippo.xlsm).Sheets(i).Unprotect
Workbooks(Pippo.xlsm).Sheets(i).Range("G3").PasteSpecial Paste:=xlPasteValues
Workbooks(Pippo.xlsm).Sheets(i).Protect
Next i
Application.CutCopyMode = False
End Sub
windows 8-Office2007
tecnuf
Utente Junior
 
Post: 18
Iscritto il: 31/12/15 10:22

Re: copia da alcune colonne da un file all'altro

Postdi Anthony47 » 11/01/16 01:50

Mi accorgo che sui nomi indicati, che siano Pippo.xlsm oppure COMbase30.xlsm, mancano le Virgolette...
Codice: Seleziona tutto
Workbooks("Pippo.xlsm").Sheets(i).Unprotect
etc etc

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "copia da alcune colonne da un file all'altro":


Chi c’è in linea

Visitano il forum: Gianca532011 e 88 ospiti