Condividi:        

[Excel] Aumentare il numero di colonne copiate dalla macro

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

[Excel] Aumentare il numero di colonne copiate dalla macro

Postdi dova4ever » 21/03/12 12:28

Ciao a tutti, in questo momento utilizzo questo splendido codice che mi ha preparato Flash30005 per copiare i dati dal foglio generale:

Immagine

ai fogli dei singoli allievi:

Immagine

Ecco il codice:

Codice: Seleziona tutto
Sub CancellaF()
For FF = 1 To Worksheets.Count
If Sheets(FF).Name <> "Generale" And Sheets(FF).Name <> "RECORD" And Sheets(FF).Name <> "MEDIE" And Sheets(FF).Name <> "CLASSIFICHE" Then
Foglio = Sheets(FF).Name
Worksheets(Foglio).Range("F4:CA500").ClearContents
End If
Next FF
Call CompAllievi
End Sub
Sub CompAllievi()
Set Ws1 = Worksheets("Generale")
Ws1.Select
RidC = 6
For CC1 = 1 To 97 Step 4
RidC = RidC - 1
UR1 = Ws1.Cells(Rows.Count, CC1).End(xlUp).Row
    For RR1 = 4 To UR1
        Foglio = Ws1.Cells(RR1, CC1).Value
        URF = Worksheets(Foglio).Cells(Rows.Count, CC1 + RidC).End(xlUp).Row + 1
        If URF < 3 Then URF = 3
        Ws1.Range(Cells(RR1, CC1 + 1), Ws1.Cells(RR1, CC1 + 2)).Copy Destination:=Worksheets(Foglio).Cells(URF, CC1 + RidC)
    Next RR1
Next CC1
End Sub


Adesso sto provando a modificare il codice in modo che prenda in esame, e quindi copi, non solo i dati delle due colonne successive al nome ma dati fino alla quinta successiva al nome in un file come questo:

Immagine

per distribuirli nei singoli fogli con un layout di questo tipo:

Immagine

(come si vede non ci sono riuscito).
Il codice così come l'ho modificato è questo:

Codice: Seleziona tutto
Sub CancellaF()
For FF = 1 To Worksheets.Count
If Sheets(FF).Name <> "Generale" Then
Foglio = Sheets(FF).Name
Worksheets(Foglio).Range("A2:F250").ClearContents
End If
Next FF
Call CompAllievi
End Sub
Sub CompAllievi()
Set Ws1 = Worksheets("Generale")
Ws1.Select
RidC = 2
For CC1 = 1 To 97 Step 7
RidC = RidC - 1
UR1 = Ws1.Cells(Rows.Count, CC1).End(xlUp).Row
    For RR1 = 2 To UR1
        Foglio = Ws1.Cells(RR1, CC1).Value
        URF = Worksheets(Foglio).Cells(Rows.Count, CC1 + RidC).End(xlUp).Row + 1
        If URF < 1 Then URF = 1
        Ws1.Range(Cells(RR1, CC1 + 1), Ws1.Cells(RR1, CC1 + 2)).Copy Destination:=Worksheets(Foglio).Cells(URF, CC1 + RidC)
    Next RR1
Next CC1
End Sub


Ma gli errori sono evidenti:
1) prende ancora in considerazione due colonne di dati (non riesco a capire quali siano le istruzioni per modificare questo parametro);
2) incolla dalla colonna B in poi e non dalla colonna A (sono riuscito a portarlo dalla colonna F alla B però se diminuisco ancora il parametro in
Codice: Seleziona tutto
RidC=2

mi restituisce un errore.

Avevo pensato che la stringa con le istruzioni per il numero di colonne da copiare fosse
Codice: Seleziona tutto
Ws1.Range(Cells(RR1, CC1 + 1), Ws1.Cells(RR1, CC1 + 2)).Copy Destination:=Worksheets(Foglio).Cells(URF, CC1 + RidC)

e l'avevo così modificata:
Codice: Seleziona tutto
Ws1.Range(Cells(RR1, CC1 + 1), Ws1.Cells(RR1, CC1 + 2), Ws1.Cells(RR1, CC1 + 3), Ws1.Cells(RR1, CC1 + 4), Ws1.Cells(RR1, CC1 + 5)).Copy Destination:=Worksheets(Foglio).Cells(URF, CC1 + RidC)

ma non funziona.

Sono impantanato nella mia ignoranza di VBA!!!
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Sponsor
 

Re: [Excel] Aumentare il numero di colonne copiate dalla ma

Postdi dova4ever » 23/03/12 08:10

Un'ulteriore precisazione: tra la colonna "Classifica" e quella "Esito" ne ho dovuta aggiungere un'altra denominata "categoria".
Quindi ci sarebbe una colonna in più di dati da trasportare.

Ciao e grazie sempre
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [Excel] Aumentare il numero di colonne copiate dalla ma

Postdi Flash30005 » 23/03/12 09:25

Non riesco a capire dove vai a prendere quei dati che vorresti riportare (Torneo, Avversario, Classifica, Esito e Punteggio), perché non mi sembra che essi siano sul foglio "Generale" iniziale

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: [Excel] Aumentare il numero di colonne copiate dalla ma

Postdi dova4ever » 23/03/12 09:47

Ciao Flash,
il file è nuovo. Avevo messo gli screenshot del precedente per fare comprendere anche agli altri di cosa si parlasse.
Nel nuovo file i dati ci sono tutti e oltre al nome cui fanno poi riferimento i singoli fogli, ci sono altre sette colonne di dati da smistare.
Il nuovo file è questo:

http://uploading.com/files/26f13e79/Rac ... lash.xlsm/

ho fatto delle modifiche per "mascherare" i nomi degli avversari ed ho messo GL in tutte le celle "Allievo" perché non ho ancora copiato i fogli, ma dovrebbe essere chiara la struttura.

Ciao
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [Excel] Aumentare il numero di colonne copiate dalla ma

Postdi Flash30005 » 23/03/12 10:32

La macro dovrebbe essere modificata così
Codice: Seleziona tutto
Public Foglio As String
Sub CancellaF()
For FF = 1 To Worksheets.Count
If Sheets(FF).Name <> "Generale" Then

Foglio = Sheets(FF).Name
URF = Sheets(Foglio).Cells(Rows.Count, 1).End(xlUp).Row + 1
Worksheets(Foglio).Range("A2:G" & URF).ClearContents
End If
Next FF
Call CompAllievi
End Sub
Sub CompAllievi()
Set Ws1 = Worksheets("Generale")
Ws1.Select

UR1 = Ws1.Cells(Rows.Count, 1).End(xlUp).Row
    For RR1 = 2 To UR1
        Foglio = Ws1.Cells(RR1, 1).Value
        URF = Worksheets(Foglio).Cells(Rows.Count, 1).End(xlUp).Row + 1
        Ws1.Range(Cells(RR1, 2), Ws1.Cells(RR1, 8)).Copy Destination:=Worksheets(Foglio).Cells(URF, 1)
    Next RR1

End Sub


Anche se, con i dati da te forniti non avrai altro che una copia del foglio Generale

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: [Excel] Aumentare il numero di colonne copiate dalla ma

Postdi dova4ever » 23/03/12 11:13

Ho usato il codice che mi hai postato sul file completo e, come sempre, funziona alla perfezione.

Cerco di capire quali sono le modifiche che hai fatto perché noto che sono abbastanza, almeno a prima vista, e che hai anche tolto alcune cose.

Grazie mille
dova4ever

win7/office 2007
dova4ever
Utente Junior
 
Post: 73
Iscritto il: 31/10/11 00:21

Re: [Excel] Aumentare il numero di colonne copiate dalla ma

Postdi Flash30005 » 24/03/12 17:17

La cosa più importante che ho tolto è la scansione delle colonne (ciclo for next: For CC1 = 1 To 97 Step 4 ) in quanto ora hai tutto su una colonna

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-


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Aumentare il numero di colonne copiate dalla macro":


Chi c’è in linea

Visitano il forum: Nessuno e 63 ospiti