Condividi:        

Macro per spostamento 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 spostamento colonne

Postdi irongus » 27/09/12 14:56

salve ragazzi sto cercando di creare una macro che mi permetta , a partire da un foglio di excel che ha 30 colonne, di cancellare le colonne dispari, e che mi tenga solo le celle pari, il risultato dovrebbe essere copiato nel secondo foglio del file excel.
Spero di essermi spiegato bene.

Grazie per chi mi potra' aiutare.

Ciao
Roberto
irongus
Newbie
 
Post: 3
Iscritto il: 27/09/12 14:50

Sponsor
 

Re: Macro per spostamento colonne

Postdi wallace&gromit » 27/09/12 16:32

ciao irongus, benvenuto nel forum.
Io ci provo: questa macro copia le colonne pari sul foglio2, ma non cancella gli originali sul foglio1
Codice: Seleziona tutto
Sub copiacolonne()
col = 2
Do While col < 32
destCol = col / 2
Worksheets("Foglio1").Columns(col).Copy Destination:=Worksheets("Foglio2").Cells(1, destCol)
col = col + 2
Loop
End Sub
fai sapere...
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Macro per spostamento colonne

Postdi irongus » 04/10/12 12:52

Ciao wallace
scusami se non ho risposto ma solo ora mi sono ricollegato. In realtà avevo posto proprio male la questione, In pratica io ho un file excel, nel Foglio 1, con 21 colonne (da A a V , quindi da 1 a 22). Dovrei con una macro, portare nel Foglio 2 del file, solo determinate colonne e in un determinato ordine , come sotto:

Foglio 1 Foglio 2
1 1
2 -
3 -
4 -
5 3
6 16
7 -
8 6
9 4
10 5
11 -
12 2
13 7
14 -
15 -
16
17 8
18 12
19 13
20 -
21 14
22 15

cioe' la colonna 1 del foglio diventa la colonna 2 del secondo, la colonna 12 del primo foglio diventa la colonna 2 del secondo e cosi via.

Grazie ancora e ciao
Roberto
irongus
Newbie
 
Post: 3
Iscritto il: 27/09/12 14:50

Re: Macro per spostamento colonne

Postdi wallace&gromit » 04/10/12 13:04

beh allora è un po' diverso effettivamente...
a questo punto dovresti dire dove si trova la lista dei numeri di colonna.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Macro per spostamento colonne

Postdi Anthony47 » 04/10/12 14:45

Ciao irongus, benvenuto anche da parte mia
Se l' incrocio e' fisso allora questo e' il tipico caso in cui una macro autoregistrata risolve il problema.
Quindi:
-parti da un foglio diverso da Foglio1
-avvia il registratore di macro
-poi esegui diligentemente:
>seleziona foglio1, copia Colonna A, spostati su foglio2, incolla (o Incolla speciale /valori) su A1 (da col 1 a col 1)
>seleziona foglio1, copia Colonna E, spostati su foglio2, incolla su C1 (da col 5 a col 3)
>etc etc
>seleziona foglio1, copia Colonna V, spostati su foglio2, incolla su O1 (da col 22 a col 15)
-premi il tasto Esc
-seleziona il foglio che vuoi lasciare selezionato al completamento, seleziona la cella che vuoi lasciare selezionata
-ferma la registrazione della macro

A questo punto tutte le volte che esegui quella macro eseguirai le suddette operazioni.

Ovviamente si puo' fare anche in un modo piu' sofisticato, lavorando su una tabella che definisce l' incrocio delle colonne; infatti se il tuo incrocio non e' fisso allora lavoreremo cosi', ma devi rispondere alla domanda di W&G oppure devi descrivere la "regola" alla base dell' incrocioa.

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

Re: Macro per spostamento colonne

Postdi wallace&gromit » 04/10/12 16:15

Aspettavo un riscontro da irongus, che non è ancora arrivato.
Comunque, Anthony, dubito che la macro registrata possa fare il lavoro richiesto, perchè suppongo che le colonne da copiare variano.
Nel frattempo ho elaborato questa macro che prende come colonne di riferimento AH e AI del foglio1.
Codice: Seleziona tutto
Sub copiacolonne2()
    Sheets("Foglio2").Select
    Cells.Select
    Selection.ClearContents
For i = 2 To 31
CopiaDa = Worksheets("Foglio1").Range("AH" & i).Value
CopiaA = Worksheets("Foglio1").Range("AI" & i).Value
If CopiaA <> "" Then
Worksheets("Foglio1").Columns(CopiaDa).Copy Destination:=Worksheets("Foglio2").Cells(1, CopiaA)
End If
Next i
End Sub
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Macro per spostamento colonne

Postdi irongus » 04/10/12 22:15

Anthony47 ha scritto:Ciao irongus, benvenuto anche da parte mia
Se l' incrocio e' fisso allora questo e' il tipico caso in cui una macro autoregistrata risolve il problema.
Quindi:
-parti da un foglio diverso da Foglio1
-avvia il registratore di macro
-poi esegui diligentemente:
>seleziona foglio1, copia Colonna A, spostati su foglio2, incolla (o Incolla speciale /valori) su A1 (da col 1 a col 1)
>seleziona foglio1, copia Colonna E, spostati su foglio2, incolla su C1 (da col 5 a col 3)
>etc etc
>seleziona foglio1, copia Colonna V, spostati su foglio2, incolla su O1 (da col 22 a col 15)
-premi il tasto Esc
-seleziona il foglio che vuoi lasciare selezionato al completamento, seleziona la cella che vuoi lasciare selezionata
-ferma la registrazione della macro

A questo punto tutte le volte che esegui quella macro eseguirai le suddette operazioni.

Ovviamente si puo' fare anche in un modo piu' sofisticato, lavorando su una tabella che definisce l' incrocio delle colonne; infatti se il tuo incrocio non e' fisso allora lavoreremo cosi', ma devi rispondere alla domanda di W&G oppure devi descrivere la "regola" alla base dell' incrocioa.

Ciao


Grazie Antony , è proprio quello che cercavo. In effetti il mio file di solito è sempre lo stesso, in ogni caso ci metto poco ad adattare questo tipo di macro.. Grazie ancora anche a wallace.. domani provo la tua macro e ti faccio sapere..

Ciao
Roberto
irongus
Newbie
 
Post: 3
Iscritto il: 27/09/12 14:50


Torna a Applicazioni Office Windows


Topic correlati a "Macro per spostamento colonne":


Chi c’è in linea

Visitano il forum: Nessuno e 96 ospiti