| | 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 |
| | 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??!!
" 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 | |
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 |
|
|