Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Excel: da 150 righe e 13 colonne a 600 righe e 4 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

Re: Excel: da 150 righe e 13 colonne a 600 righe e 4 colonne

Postdi martina_locatelli » 14/11/12 22:55

wallace&gromit ha scritto:ecco invece la mia formula adattata,
Codice: Seleziona tutto
=INDIRETTO(INDIRIZZO(CONFRONTA($A2;'DATI ORIGINALI'!$A$1:$A$150;0);RESTO((RIF.RIGA()+2);4)+2+RESTO(RIF.COLONNA()+1;4)*4;;;"DATI ORIGINALI"))

però la colonna num_infortuni nell'originale non c'è, nel mio risultato nella terza colonna figurano i valori di investimenti


va bene cmq con e senza num_infortuni perchè lavoro con due file diversi..
grazie anche a te!! provo e ti riferirò se funziona..
martina_locatelli
Utente Junior
 
Post: 12
Iscritto il: 14/11/12 16:00

Sponsor
 

Re: Excel: da 150 righe e 13 colonne a 600 righe e 4 colonne

Postdi Flash30005 » 14/11/12 22:56

Vedo che sei un po' caotica, nell'ultimo file hai dimenticato le colonne infortuni
comuqnue questa macro dovrebbe risolvere

Codice: Seleziona tutto
Sub TraslaTabella()
Application.ScreenUpdating = False
Application.Calculation = xlManual
Set Ws1 = Worksheets("DATI ORIGINALI")
Set Ws2 = Worksheets("RISULTATO")
Ws2.Range("A2:F65536").ClearContents
    UC = Ws1.Range("IV1").End(xlToLeft).Column
    UR = Ws1.Range("A" & Rows.Count).End(xlUp).Row
    For RR = 2 To UR
        For CC = 1 To 4
            AnnoD = Val(Right(Ws1.Cells(1, CC + 1).Value, 4))
            Sq2 = Ws1.Cells(RR, 1)
            Ris1 = Ws1.Cells(RR, CC + 1)
            Ris2 = Ws1.Cells(RR, CC + 5)
            Ris3 = Ws1.Cells(RR, CC + 9)
            Ris4 = Ws1.Cells(RR, CC + 13)
            UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row + 1
            Ws2.Range("A" & UR2).Value = Sq2
            Ws2.Range("B" & UR2).Value = AnnoD
            Ws2.Range("C" & UR2).Value = Ris1
            Ws2.Range("D" & UR2).Value = Ris2
            Ws2.Range("E" & UR2).Value = Ris3
            Ws2.Range("F" & UR2).Value = Ris4
        Next CC
    Next RR
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub



Allego file

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel: da 150 righe e 13 colonne a 600 righe e 4 colonne

Postdi ricky53 » 15/11/12 00:57

Ciao,
leggi quanto ti ha scritto Flash e poi prova anche il mio codice
Codice: Seleziona tutto
Option Explicit

Sub Copia_Dati_da_Più_colonne()
    Dim UR As Long, I As Long, J As Long, K As Long, L As Long, X As Long, Y As Long, Ws1 As Worksheet, Ws2 As Worksheet
    Set Ws1 = Worksheets("Foglio1") ' <<===== Se occorre cambia il nome del foglio
    Set Ws2 = Worksheets("Foglio2") ' <<===== Se occorre cambia il nome del foglio

    Application.ScreenUpdating = False
    Ws2.Columns("A:E").ClearContents

' Qui vanno stritte le intestazioni di colonna
    Ws2.[A1] = "Nome": Ws2.[B1] = "Anno": Ws2.[C1] = "Var1": Ws2.[D1] = "Var2": Ws2.[E1] = "Var3"
       
    UR = Ws1.Range("A" & Rows.Count).End(xlUp).Row
    Y = 2
    For I = 2 To UR
        For J = 1 To 4
            K = 1
            Ws2.Cells(Y, 1).Value = Ws1.Cells(I, 1)
            Ws2.Cells(Y, 2) = Right(Ws1.Cells(1, J + 1), 4)
            L = 1
            For X = 3 To 5
                Ws2.Cells(Y, X) = Ws1.Cells(I, J + L)
                L = L + 4
            Next X
            Y = Y + 1
        Next J
    Next I
    Application.ScreenUpdating = True
    Set Ws1 = Nothing: Set Ws2 = Nothing
End Sub


I dati di partenza sono nel Foglio1, quelli di destinazione sono nel Foglio2.
Se i nomi dei fogli sono diversi cambiali nel codice

Prova e sono QUI
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel: da 150 righe e 13 colonne a 600 righe e 4 colonne

Postdi martina_locatelli » 15/11/12 09:53

ciao a tutti e grazie dell'aiuto!!

Grazie al codice di flash30005 ce l'ho fatta!!! :) Soluzione trovata!!
il codice di wallace&gromit purtroppo mi da errore..
in giornata provo anche il codice di ricky53, così vedo se funziona anche quello..

Ringrazio ancora tutti, siete stati gentilissimi!!!!
martina_locatelli
Utente Junior
 
Post: 12
Iscritto il: 14/11/12 16:00

Re: Excel: da 150 righe e 13 colonne a 600 righe e 4 colonne

Postdi martina_locatelli » 15/11/12 12:09

Anche il codice di Ricky53 funziona molto bene..

Le soluzioni che ho adottato sono quelle di Ricky53 e Flash!!

Grazie!!
martina_locatelli
Utente Junior
 
Post: 12
Iscritto il: 14/11/12 16:00

Re: Excel: da 150 righe e 13 colonne a 600 righe e 4 colonne

Postdi ricky53 » 15/11/12 13:39

Ciao,
BENE.
Grazie per il riscontro e ... buona continuazione.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Excel: da 150 righe e 13 colonne a 600 righe e 4 colonne!":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti