È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

COPIARE AUTOMATICAMENTE CONTENUTO di 500 FOGLI

Ultimo Aggiornamento: 17/10/2016 18:20
Post: 4
Registrato il: 12/10/2016
Città: MILANO
Età: 37
Utente Junior
2013
OFFLINE
17/10/2016 11:37

Buongiorno a tutti!
vi porgo un quesito, sperando che tra di voi qualcuno sappia aiutarmi!
Ho un foglio di lavoro GENERALE e 500 fogli schede nominate con un codice.
Vorrei riportare nel GENERALE tutto il contenuto delle 500 schede in un unico tabellone.

per il titolo ho applicato il CERCA.VERT con l'indiretto:
per il titolo 1 : =CERCA.VERT(A1;INDIRETTO(B1&"!Area_stampa");2;0)

pero non riesco a capire come riportare automaticamente il resto dei contenuti delle schede.

allego file esempio. in giallo il contenuto da riportare nel generale tra il titolo 1 e il titolo 2.

vi ringrazio anticipatamente per il vostro contributo.
Post: 2.307
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
17/10/2016 11:55

Ciao hm86

Le riga delle singole schede da riportare in GENERALE è sempre la n. 7?

Ti può andare bene una macro?
[Modificato da alfrimpa 17/10/2016 11:56]

Alfredo
Post: 2.308
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
17/10/2016 12:05

Ciao HM86

Prova questa macro

vb
Sub riepiloga()
Dim i As Integer
Dim ur As Long
Dim x As Integer
For i = 1 To Sheets.Count
ur = Worksheets("GENERALE").Cells(Rows.Count, 1).End(xlUp).Row
    If Sheets(i).Name <> "GENERALE" Then
        For x = 1 To 13
            Worksheets("GENERALE").Cells(ur + 1, x).Value = Sheets(i).Cells(7, x).Value
        Next x
    End If
Next i
End Sub

Alfredo
Post: 4
Registrato il: 12/10/2016
Città: MILANO
Età: 37
Utente Junior
2013
OFFLINE
17/10/2016 14:17

Ciao Alfredo!
grazie per la risposta! penso che una macro faccia al caso mio.
Io dovrei copiare dalla riga 7 alla 30.
Come posso fare per cambiare la tua macro?
grazie mille per l'aiuto [SM=x423026]
Post: 2.315
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
17/10/2016 14:22

Per come sono strutturate le schede penso che alla fine il foglio GENERALE verrebbe un guazzabuglio.

Io ero partito dal tuo esempio del foglio GENERALE per scrivere la macro; se bisogna copiare dalla riga 7 alla riga 30 il discorso cambia e si complica.

Allega un altro file di esempio dove mi fai vedere come devono presentarsi i dati sul foglio GENERALE una volta che sono stati copiati dalle schede (magari aggiungine qualcuna in più).

Alfredo
Post: 6
Registrato il: 12/10/2016
Città: MILANO
Età: 37
Utente Junior
2013
OFFLINE
17/10/2016 15:10

CIAO ALFREDO,
ecco un file con l'impostazione generale.
in "Generale esempio" ti ho copiato e incollato il contenuto delle schede (non sono pignola sulla forma, mi basta il contenuto!!)
Riguardo il numero delle righe come puoi notare variano nell'area di stampa delle schede da 26 a 30.
Pensiamo cmq di copiare dalla riga 7 alla riga 30. una volta finito il tabellone generale dirò a excel di eliminare le righe vuote.

GRAZIE MILLE.
Post: 2.319
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
17/10/2016 15:50

Ciao Houda

Incomincia a provare questa macro (fallo su copia del file originale) e verifica che tutto sia riportato correttamente.

Cambia il nome del foglio GENERALE esempio in GENERALE

vb
Sub riepiloga()
Dim i As Integer
Dim ur As Long
For i = 2 To Sheets.Count
ur = Worksheets("GENERALE").Cells(Rows.Count, 2).End(xlUp).Row + 3
    If Sheets(i).Name <> "GENERALE" Then
        Sheets(i).Select
        Sheets(i).Range("a7:m30").Select
        Selection.Copy
        Sheets("GENERALE").Select
        Range("A" & ur + 1).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    End If
Next i
End Sub


Alfredo
Post: 6
Registrato il: 12/10/2016
Città: MILANO
Età: 37
Utente Junior
2013
OFFLINE
17/10/2016 16:03

ho eliminato GENERALE esempio.
ho eseguito la macro nel GENERALE ma mi dice indice non incluso nell'intervallo!
puoi spiegarmi cosa racconti qui??!! [SM=x423024]
" For i = 2 To Sheets.Count
ur = Worksheets("GENERALE").Cells(Rows.Count, 2).End(xlUp).Row + 3 "
Post: 2.321
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
17/10/2016 16:27

Ciao Houda

Controlla che il foglio si chiami "GENERALE" verifica che non ci sia uno spazio in più.

Comunque ti allego il file sul quale ho provato io e funziona (devi solo controllare che tutto sia riportato correttamente.

L'istruzione

vb
ur = Worksheets("GENERALE").Cells(Rows.Count, 2).End(xlUp).Row 


serve a determinare il numero dell'ultima riga piena della colonna B.

Alfredo
Post: 8
Registrato il: 12/10/2016
Città: MILANO
Età: 37
Utente Junior
2013
OFFLINE
17/10/2016 16:45

Ciao Alfredo,
Ti faccio un ultima domanda, GIURO!
è possibile riportare il contenuto mantenendo la relazione tra le celle, quindi le formule???
GRAZIE
Post: 2.325
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
17/10/2016 17:54

Non so se ho capito tu vuoi che in GENERALE ci siano le formule che sono sulle singole schede?

Il problema è che se si copia incollando le formule si perdono i riferimenti.

Se fai sempre un esempio di quello che vorresti forse si può vedere.

Alfredo
Post: 9
Registrato il: 12/10/2016
Città: MILANO
Età: 37
Utente Junior
2013
OFFLINE
17/10/2016 18:08

nella tua macro tu indichi "INCOLLA VALORI", se nella macro diamo un incolla normale potrebbe funzionare.
Per quanto riguarda i riferimenti non dovrebbe perderli visto che si copia tutto insieme.
Post: 10
Registrato il: 12/10/2016
Città: MILANO
Età: 37
Utente Junior
2013
OFFLINE
17/10/2016 18:19

RISOLTO
Ho messo al posto di PasteValues > PasteAll!
Funziona perfettamente e mi copia anche tutta la grafica!
Grazie mille Alfredo per il tuo contributo!

Post: 2.326
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Veteran
Excel 365
OFFLINE
17/10/2016 18:20

Bene mi fa piacere che tu abbia risolto.
[Modificato da alfrimpa 17/10/2016 18:22]

Alfredo
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 06:25. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com