Condividi:        

macro per copiare foglio con inserimento colonne

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

macro per copiare foglio con inserimento colonne

Postdi luca62 » 09/01/15 07:57

Anthony,
Ho provato con il registratore di macro a fare una copia di un foglio "INCOLONNA" su un altro foglio "ORDINI" dello stesso file,aggiungendo altre colonne e invertendo delle posizioni delle colonne copiate.
In pratica: nel foglio "ordini" voglio creare una colonna (la colonna A) che abbia in A1 il titolo COM e da A2 fino alle righe in cui sono presenti i dati copiati (1^difficoltà insuperabile, come faccio a dire questo?) il nome del file senza .xls.
Devo poi eseguire la copia delle colonne dal foglio "INCOLONNA" al foglio "ORDINI" con questa logica:
la colonna A DI "INCOLONNA" da copiare nella colonna B di "ORDINI"
la colonna B DI "INCOLONNA" da copiare nella colonna C di "ORDINI"
la colonna C DI "INCOLONNA" da copiare nella colonna D di "ORDINI"
la colonna D DI "INCOLONNA" da copiare nella colonna E di "ORDINI"
la colonna E DI "INCOLONNA" da copiare nella colonna F di "ORDINI"
la colonna I DI "INCOLONNA" da copiare nella colonna H di "ORDINI"
la colonna F DI "INCOLONNA" da copiare nella colonna I di "ORDINI"
la colonna G DI "INCOLONNA" da copiare nella colonna J di "ORDINI"
la colonna H DI "INCOLONNA" da copiare nella colonna K di "ORDINI"
nella colonna G DI "ORDINI" devo inserire una colonna cha abbia per G1 il titolo costo T.
e da G2 fino fino alle righe in cui sono presenti dei dati copiati dal foglio "INCOLONNA"
la formula =$F2*$E2 (PER G3=$f3*$E3 e cos' via)

Una volta fatto questo, vorrei creare un altro tasto per ordinare i dati così ottenuti (in "ordini")
(dalla riga 2 in poi inclusa) in funzione :
a)dell'ordine alfabetico della colonna I (di "ordini")
b) in funzione del numero più alto della colonna K (di "ordini")
c) in funzione del numero piu alto della colonna B (di "Ordini")
d) in funzione del numero piu basso della colonna C (di "Ordini")


Spero che non sia una cosa..troppo complicata!
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Sponsor
 

Re: macro per copiare foglio con inserimento colonne

Postdi Anthony47 » 09/01/15 12:27

Credo che potrebbe aiutare questa:
Codice: Seleziona tutto
Sub lucamix()
Dim LastR As Long
'
Sheets("ORDINI").Range("A2").Rsize(10000, 11).ClearContents    '****
LastR = Evaluate("=MAX((A1:H10000<>"""")*(ROW(A1:A10000)))")
Sheets("INCOLONNA").Select
Range("A1:E1").Resize(LastR, 5).Copy Destination:=Sheets("ORDINI").Range("A2")
Range("F1:H1").Resize(LastR, 3).Copy Destination:=Sheets("ORDINI").Range("I2")
Range("I1").Resize(LastR, 1).Copy Destination:=Sheets("ORDINI").Range("H2")
Sheets("ORDINI").Range("G2").Resize(LastR, 1).Formula = "=$F2*$E2"
'
End Sub

I titoli li metti a mano, anche perche' mi pare sia una cosa da fare una tantum.
La riga marcata *** azzera senza preavviso le prime 10000 righe di foglio ORDINI; se non ti piace cancellala.

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

Re: macro per copiare foglio con inserimento colonne

Postdi luca62 » 10/01/15 23:06

non capisco perchè ma si blocca subito...comunque poichè quella col registratore di macro va benino..
ti chiedo , come faccio a dire invece di:
ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-2]"
Range("H2").Select
Selection.Copy
Range("H3:H1000").Selec

che mi copia i dati da H3 a H1000
dire invece (range "H3 : fino alla ultima riga con alcuni dati?)

grazie Anthony
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: macro per copiare foglio con inserimento colonne

Postdi ricky53 » 11/01/15 20:45

Ciao,
io approfondirei per capire il motivo del mancato funzionamento ... anche per riscontro ad Anthony.
Per esempio dove ti si blocca e cosa ottieni?
Esegui il codice passo passo (con "F8") e verifica cosa viene fatto ed aggiornaci
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: macro per copiare foglio con inserimento colonne

Postdi luca62 » 11/01/15 22:06

Mi da errore RUN TIME 438

con F8
mi evidenzia errore partendo da
Sheets("ORDINI").Range("A2").Rsize(10000, 11).ClearContents '****

se cancello la riga sopra, ossia salvando a macro senza questa riga,mi da errore 1004

e mi evidenzia come errore:
Range("A1:E1").Resize(LastR, 5).Copy Destination:=Sheets("ORDINI").Range("A2")

spero che tutto si chiaro
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: macro per copiare foglio con inserimento colonne

Postdi Anthony47 » 11/01/15 23:34

La macro era stata collaudata grossolanamente...
Prova questa.
Codice: Seleziona tutto
Sub lucamix()
Dim LastR As Long
'
Sheets("ORDINI").Range("A2").Resize(10000, 11).ClearContents    '****
Sheets("INCOLONNA").Select
LastR = Evaluate("=MAX((A1:H10000<>"""")*(ROW(A1:A10000)))")
Range("A1:E1").Resize(LastR, 5).Copy Destination:=Sheets("ORDINI").Range("A2")
Range("F1:H1").Resize(LastR, 3).Copy Destination:=Sheets("ORDINI").Range("I2")
Range("I1").Resize(LastR, 1).Copy Destination:=Sheets("ORDINI").Range("H2")
Sheets("ORDINI").Range("G2").Resize(LastR, 1).Formula = "=$F2*$E2"
'
End Sub
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per copiare foglio con inserimento colonne

Postdi luca62 » 12/01/15 07:49

questa è ok ,e cambiata un po secondo le mie esigenze va bene!
domanda :come faccio a dire che nella nuova colonna voglio la stessa
formattazione delle altre colonne ? (caratteri,bordi )?

Sheets("ORDINI").Range("G2").Resize(LastR -1, 1).Formula = "=$F2*$E2"?
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: macro per copiare foglio con inserimento colonne

Postdi luca62 » 12/01/15 09:00

risolto con formattazione condizionale
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: macro per copiare foglio con inserimento colonne

Postdi Flash30005 » 13/01/15 08:57

luca62 ha scritto:risolto con formattazione condizionale


ma che eviterei, visto che è possibile farlo con la stessa macro che, inoltre, eviterebbe di inserire formule che aumenterebbero (se in gran quantità) la dimensione del file.

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: macro per copiare foglio con inserimento colonne

Postdi luca62 » 13/01/15 16:40

ma..ognuno si arrangia come può..o meglio con le conoscenze (veramente scarse...per quanto mi riguarda..) ...come si fa per inserirlo nella macro?
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: macro per copiare foglio con inserimento colonne

Postdi Anthony47 » 14/01/15 00:57

Per me una soluzione funzionante e' sempre meglio di una migliore non ancora disponibile...

Nella macro che ti suggerii aggiungi queste linee, subito prima di End Sub:
Codice: Seleziona tutto
Range("A1").Resize(LastR, 1).Copy
Sheets("ORDINI").Range("G2").Resize(LastR, 1).PasteSpecial _
    Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False

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


Torna a Applicazioni Office Windows


Topic correlati a "macro per copiare foglio con inserimento colonne":


Chi c’è in linea

Visitano il forum: Nessuno e 48 ospiti