Condividi:        

Trasportare tutti i dati su una sola colonna

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

Trasportare tutti i dati su una sola colonna

Postdi rabat » 19/06/09 10:15

Salve a tutti,
ho a che fare con una tabella di dati composta da 1150 righe e 400 colonne.
è possibile creare una macro per portare tutti i dati in un'unica colonna?
Se qualcuno sa come fare vi prego di spiegarmelo in termini semplici.

Grazie
rabat
Newbie
 
Post: 5
Iscritto il: 19/06/09 09:25

Sponsor
 

Re: Trasportare tutti i dati su una sola colonna

Postdi ricky53 » 19/06/09 11:14

Caio,
benvenuto nel forum.
Allora: trattandosi di 400 colonne:
1. a mano è sconsigliato altamente
2. occorre una macro

Se con il VBA te la cavi:
1. parti con il registratore di macro fai l'operazione di copia/incolla o meglio taglia/incolla su due colonne
2. porta i dati in coda alla prima colonna.
3. vai sul codice generato e prova ad adattare sulle 400 colonne mediante un ciclo for / next

fatti risentire.

Ciao da Ricky53
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: Trasportare tutti i dati su una sola colonna

Postdi ricky53 » 19/06/09 12:19

Caio,
qualcosa del tipo:

Codice: Seleziona tutto
Sub Copia_Dati_da_Più_Colonne_su_Una()
    UC = Range("A1").End(xlToRight).Column
    For I = 2 To UC
 ...
        Selection.Cut
...
        ActiveSheet.Paste
    Next I
    [A1].Select
End Sub

Ciao da Ricky53
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: Trasportare tutti i dati su una sola colonna

Postdi rabat » 19/06/09 15:03

Scusate ma sono un ignorante assoluto, non so come adattare i vostri suggerimenti al caso specifico.
Ad esempio cosa dovrei inserire al posto dei puntini ?

Grazie
rabat
Newbie
 
Post: 5
Iscritto il: 19/06/09 09:25

Re: Trasportare tutti i dati su una sola colonna

Postdi ricky53 » 19/06/09 15:15

Ciao,
le istruzioni per copiare che ottieni dalla prova con il registratore di macro e che devi adattare.

Hai provato con il registratore???

Si impara provando e provando.

Appena posso vedo di scriverti qualcosa.
Quanto ti sarà utile (oltre a risolvere il tuo quesito del momento) per imparare ed essere operativo?

Ciao da Ricky53
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: Trasportare tutti i dati su una sola colonna

Postdi ricky53 » 19/06/09 15:37

Ciao,
ho scritto la seguente macro
Codice: Seleziona tutto
Sub Copia_Dati_da_Più_Colonne_su_Una()
    UC = Range("A1").End(xlToRight).Column
    For I = 2 To UC
        If Cells(1, I) <> "" Then
            Range(Cells(1, I), Cells(Rows.Count, I).End(xlUp)).Select
            Selection.Cut
            Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1).Select
            ActiveSheet.Paste
        End If
    Next I
    [A1].Select
End Sub


Provala.

Cerca di imparare (vai per gradi e fai vari tentativi) altrimenti è tutto inutile: qualcuno del forum ti risolve il problema del momento e non ti rimane nulla.

Prova a cercare di capire cosa fanno le poche istruzioni che ho scritto.
Se vuoi entriamo nel dettaglio di ogni comando.

Ciao da Ricky53
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: Trasportare tutti i dati su una sola colonna

Postdi rabat » 19/06/09 16:09

Vi sono grato dell'aiuto, mi scuso con voi ma non so niente di VB. mi piacerebbe capire cosa significano i comandi che hai usato. POtete consigliarmi qualche buon manuale per principianti?
Venendo al caso specifico: ho provato il listato, la macro si blocca alla colonna BF dando un errore "1004" che si riferisce alla non corrispondenza tra le celle copiate e quelle di destinazione. Ti premetto che le colonne sono tutte identiche.

Grazie di nuovo
rabat
Newbie
 
Post: 5
Iscritto il: 19/06/09 09:25

Re: Trasportare tutti i dati su una sola colonna

Postdi Flash30005 » 19/06/09 20:59

Prova ad usare questa macro
Con il foglio aperto premi ALT+F11 e, dalla barra del menu, scegli Inserisci > Modulo
incolli l'intero codice postato
Codice: Seleziona tutto
Sub Incolonna()
RIni = 1
UC = Worksheets("Tabella").Range("ZZ1").End(xlToLeft).Column
UR = Worksheets("Tabella").Range("A" & Rows.Count).End(xlUp).Row
For Col = 1 To UC
RigaC = UR * Col
Worksheets("Tabella").Select
Range(Cells(1, Col), Cells(UR, Col)).Select
    Selection.Copy
    Sheets("Destinazione").Select
    Cells(RIni, 1).Select
    ActiveSheet.Paste
    RIni = RigaC + 1
    Next Col
End Sub

Alla macro postata dovrai sostituire il nome del tuo foglio che contiene la tabella (con 400 colonne) al posto di Worksheets("Tabella")
Esempio se il tuo foglio si chiama Dati tu dovrai mettere al posto di Tabella la parola Dati
avrai così Worksheets("Dati")
lo stesso vale per il foglio "Destinazione", se il tuo foglio si chiama Pippo dovrai mettere Sheets("Pippo") dove trovi Sheets("Destinazione")

Fai sapere
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: Trasportare tutti i dati su una sola colonna

Postdi ricky53 » 19/06/09 22:47

Ciao,
se il messaggio è quello che ti ho allegato allora potresti aver superato il massimo numeri di righe cella colonna “A” sulla quale stai accodando i dati
Quando hai avuto l’errore a che riga eri arrivato nella colonna “A”?

La macro di Flash fa le stesse operazioni (solo che copia e non sposta i dati) e dovrebbe presentare comunque il problema che hai segnalato.

Nella macro che ti ho inviato modifica la seguente istruzione :
Selection.Cut

con questa:
Selection.Copy

e riprova.

E’ possibile avere un tuo file di esempio per verificare l’errore.

Ciao da Ricky53
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: Trasportare tutti i dati su una sola colonna

Postdi ricky53 » 19/06/09 22:52

Ciao,
ecco l'allegato
Immagine

Ciao da Ricky53
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: Trasportare tutti i dati su una sola colonna

Postdi rabat » 21/06/09 17:57

Sì, il messaggio di errore che mi ha dato il programma è esattamente quello che hai allegato.
Se il problema è la lunghezza massima della colonna di destinazione allora non c'è speranza di risolvere la questione.
Grazie, siete gentilissimi e davvvero in gamba.
Ciao
rabat
Newbie
 
Post: 5
Iscritto il: 19/06/09 09:25

Re: Trasportare tutti i dati su una sola colonna

Postdi ricky53 » 21/06/09 18:53

Ciao,
vai in debug per vedere a quale riga, della colonna "A", sei arrivato a copiare prima dell'errore.

Ciao da Ricky53
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: Trasportare tutti i dati su una sola colonna

Postdi Anthony47 » 21/06/09 19:43

Guarda il messaggio di Ricky subito sopra questo...
Aggiungo qualche commento:
Hai detto di avere 400 colonne di dati, quindi dovresti usare Excel2007, che di righe ne ha 1milione; cioe' piu' del doppio di quante ne servirebbero (1150*400).
Ma il fatto che ti si blocca sulla colonna BF mi fa pensare che tu stia lavorando su una versione precedente (quindi NON 400 colonne, e un limite di 65536 righe).
Puoi confermare su quale excel lavori?

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

Re: Trasportare tutti i dati su una sola colonna

Postdi Flash30005 » 21/06/09 22:22

Anthony47 ha scritto:Guarda il messaggio di Ricky subito sopra questo...
Aggiungo qualche commento:
Hai detto di avere 400 colonne di dati, quindi dovresti usare Excel2007, che di righe ne ha 1milione; cioe' piu' del doppio di quante ne servirebbero (1150*400).
Ma il fatto che ti si blocca sulla colonna BF mi fa pensare che tu stia lavorando su una versione precedente (quindi NON 400 colonne, e un limite di 65536 righe).
Puoi confermare su quale excel lavori?

Ciao, fatti sentire.


Era la stessa domanda che avrei voluto fare io a Rabat prima di imbattermi nella macro ma avendo letto meglio il suo post dove parlava di 400 colonne ho subito pensato a office 2007 quindi ho elaborato la macro con office 2003 mettendo come ultima colonna la IV che poi ho modificato in ZZ1.
A tal proposito volevo anche dire che la riga nella macro postata con
Codice: Seleziona tutto
UC = Worksheets("Tabella").Range("ZZ1").End(xlToLeft).Column

è sostituibile perfettamente con quel codice di Ricky
Codice: Seleziona tutto
UC = Worksheets("Tabella").Range("A1").End(xlToRight).Column

(al momento di sviluppo della macro non ricordavo a memoria il codice e l'ho copiato da un'altra macro dove l'esigenza era quella di partire da una colonna specifica perché oltre c'erano altre colonne che non dovevano essere interessate, ma nel tuo caso va benone quest'ultimo codice)
La differenza tra le due macro (di Ricky e mia) è che quella di Ricky lavora direttamente sul foglio tabella mentre la mia trasferisce i dati della tabella sul foglio "Destinazione" lasciando inalterata la tabella di origine
Quindi non ti rimane che far funzionare le due macro che sono state testate e in sé non hanno errori

Ciao

P.s. Rimane sempre il dubbio sulla tua versione di office
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: Trasportare tutti i dati su una sola colonna

Postdi ricky53 » 21/06/09 22:41

Ciao,
avendo tu scritto "400" ho dato per scontato che tu lavorassi con la versione 2007 di Excel perchè le versioni precedenti non superavano le 256 colonne (ultima colonna "IV").

Hai detto di aver avuto un errore uguale a quello che ho inserito io come immagine; questo errore, come già scritto, si ottiene superando il numero massimo di righe consentito per la versione in uso.

Leggendo quanto scritto da Anthony e facendo un po' di conti:

"BF" è la colonna 58 se moltiplichiamo 1150*58 otteniamo 66.700 che è maggiore di 65.536 (numero massimo di righe consentito per le versioni precedenti alla 2007.

Sei sicuro che hai potuto lavorare fino alla colonna precedente "BE" (colonna 57)?

Moltiplicando 1150*57 si ha 65.550 che è sempre maggiore di 65.536.

Secondo me l’elaborazione si è fermata alla colonna “BD” riga 64.400.

Comunque comunicaci, come già detto da Anthony, la versione di Excel che utilizzi.

Ciao da Ricky53
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: Trasportare tutti i dati su una sola colonna

Postdi ricky53 » 21/06/09 22:44

Ciao Flash,
devo prendere l'abitudine di verificare gl interventi prima di inserire il mio.
Come spesso capita (abbiamo gli stessi orari) scriviamo cose simili uno dopo l'altro.
La prossima volta starò più attento.

Buonanotte a tutti.
Ciao da Ricky53
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: Trasportare tutti i dati su una sola colonna

Postdi Anthony47 » 21/06/09 23:22

Ovviamente sia la mia osservazione che quella di Ricky e' per rabat; e' lui che deve dirci che excel usa...

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

Re: Trasportare tutti i dati su una sola colonna

Postdi ricky53 » 21/06/09 23:28

Ciao Anthony,

nella mia risposta mi riferivo a Rabat ed ho preso spunto dal tuo intervento per scrivere a lui ma non l'ho citato direttamente.

Buonanotte a tutti da Ricky53
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: Trasportare tutti i dati su una sola colonna

Postdi rabat » 22/06/09 09:19

Salve,
mi scuso per avervi creato degli equivoci, veniamo ai vari punti.
Sto usando un Excel 2003.
I file che dovrei elaborare provengono da un programma che genera una serie di numeri su di una griglia che può contenere, in teoria, un numero infinito di celle. In realtà ho a che fare con griglie massime che, come premesso al primo messaggio, nel mio caso arrivano alle 400 colonne circa 1150-1200 righe. I file con cui ho testato la macro non erano quelli di dimensioni massime (non li ho ancora generati con il programma di partenza) ma erano comunque file di 1144 righe x 100 colonne e 1152 righe x 50 colonne.
Il problema sta dunque nel numero massimo di celle di Excel 2003?

Grazie di nuovo
rabat
Newbie
 
Post: 5
Iscritto il: 19/06/09 09:25

Re: Trasportare tutti i dati su una sola colonna

Postdi Flash30005 » 22/06/09 09:39

rabat ha scritto:Salve,
mi scuso per avervi creato degli equivoci, veniamo ai vari punti.
Sto usando un Excel 2003.
I file che dovrei elaborare provengono da un programma che genera una serie di numeri su di una griglia che può contenere, in teoria, un numero infinito di celle. In realtà ho a che fare con griglie massime che, come premesso al primo messaggio, nel mio caso arrivano alle 400 colonne circa 1150-1200 righe. I file con cui ho testato la macro non erano quelli di dimensioni massime (non li ho ancora generati con il programma di partenza) ma erano comunque file di 1144 righe x 100 colonne e 1152 righe x 50 colonne.
Il problema sta dunque nel numero massimo di celle di Excel 2003?

Grazie di nuovo


Certo!
Come ti diceva sia Anthony che Ricky le righe in excel di Office 2003 sono 65536 e le colonne 256
quindi al massimo potrai traslare in una unica colonna una tabella dove il prodotto tra righe e colonne iniziali non superi le 65536 righe (es. 256 righe x 256 colonne = 65536 oppure 1200 righe x 54 colonne = 64800 righe)
Altrimenti devi usare Office 2007 che contiene milioni di righe e molte più colonne di excel 2003

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-

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Trasportare tutti i dati su una sola colonna":


Chi c’è in linea

Visitano il forum: Nessuno e 38 ospiti