Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Copiare colonne sottostanti

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

Copiare colonne sottostanti

Postdi gennaro72 » 10/06/22 16:58

Buongiorno a tutti,
ho il seguente foglio xls strutturato con righe e colonne come da esempio:

cod. cognome nome dato1 dato2 dato3 dato4 dato5 datoN

ipotizzando un 1000 di righe con valori nelle colonne "dato" presenti o assenti, vorrei copiare il tutto in una struttura simile alla seguente:

cod. cognome nome dato

dove mi vengano ripetuti più volte le prime tre colonne (cod. cognome nome) e i valori (presenti o assenti) delle colonne dato1, dato2, ecc. vengano inseriti uno sotto l'altra.

Per cercare di spiegarmi meglio, attualmente mi copio il range dei dati n volte uno sotto l'altro per quante colonne datoN ho presenti, una volta fatto questo (quindi i dati uno sotto l'altro) mi creo una colonna vuota tra nome e dato1 e poi mi sposo i dati1 nella colonna vuota, poi passo ai dati2 e li metto sotto a quelli appena copiati e via dicendo.

Faccio un piccolo esempio

cod. cognome nome dato1 dato2 dato3
1 bianchi mario 5 10,4 4
2 rossi giulio 3 11,5
3 verdi blu 0,5 1

risultato finale da ottenere

cod. cognome nome dato
1 bianchi mario 5
2 rossi giulio
3 verdi blu 0,5
1 bianchi mario 10,4
2 rossi giulio 3
3 verdi blu 1
1 bianchi mario 4
2 rossi giulio 11,5
3 verdi blu

E' possibile automatizzare questa cosa?

Grazie mille per la vostra disponibilità
gennaro72
Newbie
 
Post: 3
Iscritto il: 10/06/22 16:48

Sponsor
 

Re: Copiare colonne sottostanti

Postdi Anthony47 » 10/06/22 19:37

Ciao Gennaro, benvenuto nel forum

Prova questa macro:
Codice: Seleziona tutto
Sub Moltiplica()
Dim dSh As Worksheet, I As Long, J As Long
'
Set dSh = Sheets("Foglio4")     '<<< Il foglio dove vuoi ricreare l'elenco
Sheets("Foglio3").Select        '<<< Il foglio coi dati di partenza
'
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    For J = 0 To 100
        If Cells(I, 3 + J) = "" Then Exit For
        Cells(I, 1).Resize(1, 2).Copy dSh.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Cells(I, 3 + J).Copy dSh.Cells(Rows.Count, 1).End(xlUp).Offset(0, 2)
    Next J
Next I
End Sub


Copia il codice in un Modulo standard del tuo vba, adatta le due righe marcate <<< e poi eseguila

Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 18263
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare colonne sottostanti

Postdi gennaro72 » 10/06/22 21:14

Grazie mille per il benvenuto e per lo script.
Ho testato il tuo codice, ma non ottengo quanto richiesto.
Nel dettaglio, vengono correttamente copiate le colonne cod. e cognome, mentre da nome a dato vengono inserite uno sotto l'altro.
Come faccio a impostare che deve utilizzare come colonne fisse le prime 3 o volendo variare il dato, dove devo intervenire sul tuo script, per scegliere da dove deve metter i dati uno sotto l'altro ?
Grazie mille per la disponibilità.
gennaro72
Newbie
 
Post: 3
Iscritto il: 10/06/22 16:48

Re: Copiare colonne sottostanti

Postdi Anthony47 » 10/06/22 22:56

Dal tuo esempio non si capiva che Cognome /Nome fossero due colonne diverse...
Questa?
Codice: Seleziona tutto
Sub Moltiplica()
Dim dSh As Worksheet, I As Long, J As Long
'
Set dSh = Sheets("Foglio4")     '<<< Il foglio dove vuoi ricreare l'elenco
Sheets("Foglio3").Select        '<<< Il foglio coi dati di partenza
'
For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    For J = 1 To 100
        If Cells(I, 3 + J) = "" Then Exit For
        Cells(I, 1).Resize(1, 3).Copy dSh.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        Cells(I, 3 + J).Copy dSh.Cells(Rows.Count, 1).End(xlUp).Offset(0, 3)
    Next J
Next I
End Sub

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

Re: Copiare colonne sottostanti

Postdi gennaro72 » 11/06/22 10:12

Grazie mille.
gennaro72
Newbie
 
Post: 3
Iscritto il: 10/06/22 16:48


Torna a Applicazioni Office Windows


Topic correlati a "Copiare colonne sottostanti":


Chi c’è in linea

Visitano il forum: Ricky0185 e 29 ospiti