| | Post: 1 | Registrato il: 21/02/2017
| Città: MONTALTO UFFUGO | Età: 45 | Utente Junior | 2010/2016 | | OFFLINE | |
|
21/02/2017 10:56 | |
Buongiorno a tutti. Sono nuovo nel forum e non espertissimo in excel. Vorrei porre una domanda ai più esperti. Io ho la necessità di copiare delle celle da un foglio ad un altro saltando alcune celle nel foglio di destinazione. Mi spiego meglio:
Nel "foglio1" ho la cella A5, A6, A7, A8...... e devo copiarle nel foglio2 nelle celle A4, A14, A24, A34..... In pratica ho un intervallo di 10 celle nel foglio di destinazione, e devo fare la stessa cosa con le colonne B, C, D ed E. Esiste qualche formula da impostare per poi trascinarla visto che devo farlo fino alla riga 1117? Ho cercato sul forum ma mi sembra che non ci sia nulla.
Grazie in anticipo. |
|
| | Post: 5.067 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
21/02/2017 12:06 | |
Ciao deadman, credo che dovresti fa uso del VBA, si risolve prima che con le formule.
ma lo stesso discorso vale per le colonne B-C-D-E, cioè b4 va a b14-24-etc..
quindi la riga 4 diciamo A4:E4 va al secondo foglio a A14:E14, ma tali righe sul 2° foglio sono vuote?
inserisci un esempio togliendo dati sensibili
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 2.543 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
21/02/2017 12:18 | |
Buona giornata, Deadman.78;
considerando la quantità di Record da analizzare, avrei proposto un Codice WBA di questo tipo:
Option Explicit
Sub Copia()
Application.ScreenUpdating = False
Dim NRc As Long, x As Long, y As Long
With Worksheets("Foglio1")
Sheets("Foglio2").Select
Columns("A:A").ClearContents
y = 4
NRc = .Range("A" & Rows.Count).End(xlUp).Row
For x = 5 To NRc
.Cells(x, 1).Copy Cells(y, 1)
y = y + 10
Next x
End With
Application.ScreenUpdating = True
End Sub
Questo Codice non è velocissimo, ma, se hai una discreta conoscenza di VBA, si potrebbe pensare all'uso di una Matrice; il Codice sarebbe un pò più complesso ma dovrebbe essere più performante.
Fai sapere se hai problemi.
A disposizione.
Buon Lavoro e buona serata.
Giuseppe
Edit: Leggo solo ora la Risposta di by sal (che saluto); mi scuso per la sovrapposizione.[Modificato da GiuseppeMN 21/02/2017 12:22]
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 0 | Registrato il: 24/04/2014
| Città: MILANO | Età: 53 | Utente Junior | | OFFLINE | |
|
21/02/2017 14:49 | |
|
| | Post: 1 | Registrato il: 21/02/2017
| Città: MONTALTO UFFUGO | Età: 45 | Utente Junior | 2010/2016 | | OFFLINE | |
|
21/02/2017 16:45 | |
Ciao a tutti ragazzi/e.
Grazie innanzitutto per le risposte. Considerate che io sono quasi ai primi rudimenti con excel, quindi per fare un VBA non saprei neanche da dove iniziare ...detto questo, se può servire inserisco un file in modo da rendere più chiara la cosa |
| | Post: 2 | Registrato il: 21/02/2017
| Città: MONTALTO UFFUGO | Età: 45 | Utente Junior | 2010/2016 | | OFFLINE | |
|
21/02/2017 17:01 | |
Come potete notare dal file in allegato, devo copiare il contenuto del foglio "Elenco Prezzi" nel foglio "Analisi", saltando 10 righe nel foglio "Analisi", e devo farlo per 1079 voci che arrivano alla riga 1117 del foglio "Elenco Prezzi". Quello che mi frega è quello che c'è tra una voce e un altra perchè altrimenti lo avrei fatto nel modo più semplice (trascina col mouse). Finora, seguendo le indicazioni trovate qua e la in internet ho utilizzato la seguente formula:
=INDICE('Elenco Prezzi'!$A$5:$F$1117;MAX($A$1:A3)+1;RIF.COLONNA())
il problema è che arrivato ad un certo punto, alla riga 114 del foglio "Analisi" corrispondente alla voce n°12, nella cella della quantità compare il numero 12 e questa cosa si ripete fino alla fine.
E per ultimo, arrivato alla voce n°54, corrispondente alla riga 544 del foglio "Analisi", se continuo a incollare la formula, oltre a ripetermi il n°12 come quantità, mi visualizza, fino alla fine, sempre la voce 54.
Vi prego aiutatemi altrimenti divento vecchio a fare copia e incolla per ogni singola voce.
Grazie |
| | Post: 2.545 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
21/02/2017 19:00 | |
Deadman.78, scrive:
... per fare un VBA non saprei neanche da dove iniziare ...
Buona giornata, Deadman.78; nel File in allegato, nel Foglio di lavoro "Analisi", dovresti semplicemente premere il Pulsante "Copia". Sono consapevole che non è molto formativo per iniziare a conoscere la programmazione VBA, ma, potrebbe essere di stimolo per scoprire le potenzialità di questo linguaggio. Fai sapere se hai problemi. A disposizione. Buon Lavoro e buona serata. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 3 | Registrato il: 21/02/2017
| Città: MONTALTO UFFUGO | Età: 45 | Utente Junior | 2010/2016 | | OFFLINE | |
|
21/02/2017 19:29 | |
Buonasera Giuseppe.
Grazie innanzitutto per l'interesse e per l'ottimo lavoro svolto.
E' inutile che ti dica che sono rimasto a bocca aperta appena ho premuto il pulsante copia.
In effetti è un ottimo stimolo questo per iniziare a studiare il linguaggio VBA, e dato che col lavoro che faccio ho di questi problemi giornalmente, cercherò di trovare in rete qualche guida per iniziare.
Ho copiato sul file che mi hai mandato tutte le altre voci del computo metrico, che per ovvie ragioni ho omesso dal file di esempio, e ho premuto il pulsante copia....la rotellina sta ancora girando...penso che ci vorrà ancora molto perché sono 1079 voci.
Ti posso chiedere come fare per trovare in rete una buona guida per il linguaggio in Visual Basic?
Grazie ancora |
| | Post: 2.549 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
22/02/2017 09:17 | |
Buona giornata, DeadMan; temo che, con questi numeri di Record, il tempo di esecuzione diventi di alcune decine di minuti. Tempo assolutamente inaccettabile. Per mia curiosità, proverò ad ipotizzare l'utilizzo di un Array, ma, temo che il tempo di esecuzione sarà sempre improponibile. Quello che farei, disponendo della Licenza, utilizzerei sicuramente ACCESS; la programmazione sarebbe un pò più complessa, ma, una volta definte: - Tabelle - Maschere - Query - Report il risultato sarebbe immediato. Per quanto concerne una buona guida per iniziare l'approccio con VBA (Visual Basic for Application), credo di essere la persona meno adatta per poterti fornire un valido aiuto. Sono un autodidatta; sono partito con il "Registratore di macro". Valutando i Codici che venivano proposti con questo strumento, eliminando e/o modificando le istruzioni che venivano registrate, mi sono creato una certa cultura in materia. Cultura che ho poi affinato con approfondimenti in biblioteca su temi specifici. In realtà ho anche acquistato un volume dedicato alle Macro (Codici VBA) sviluppato su Excel 2000, ma, oggi, è un testo che servirebbe a poco; molti dei Codici VBA riferiti a Excel 2000 non trovano riscontro nelle Release di Excel più recenti. Non posso trascurare quanto imparato nei vari Forum che ho frequentato; anche questo tipo di approfondimento, mi è servito moltissimo. Quello che mi permetto di consigliarti e di dare uno sguardo a quanto proposto in: http://forum.wintricks.it/showthread.php?t=155252Potrebbe essere una base di riflessione su come procedere; non è un Corso completo, ma, propone sounti interessanti per iniziare ad utilizzare VBA. A disposizione. Buon Lavoro e buona serata. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 4 | Registrato il: 21/02/2017
| Città: MONTALTO UFFUGO | Età: 45 | Utente Junior | 2010/2016 | | OFFLINE | |
|
22/02/2017 09:29 | |
Buongiorno Giuseppe.
Si in effetti ieri sera, dopo una ventina di minuti di elaborazione, ho bloccato l'applicazione. Temo che ci voglia molto per elaborare 1079 voci.
Per quanto riguarda Access considera che avrei sempre voluto imparare ad usarlo ma, causa il poco tempo a disposizione, non ho mai iniziato, e quindi lo conosco molto meno di Excel.
Attendo eventuali tue nuove.
Buona giornata e grazie ancora. |
| | Post: 2.550 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
22/02/2017 09:56 | |
Buona giornata, DeadMan; ma Tu disponi di una Licenza ACCESS? Sono anni che non programmo più in ACCESS, ma non mi dispiacerebbe dare una ripassata alle Regole e questa potrebbe essere una buona occasione. Sicuramente dovrei intervenire nella sezione adeguata, non in questa che è dedicata a Excel, e dovrei confrontarmi con i Guru di ACCESS che, molto spesso hanno giudicato poco etico il mio metodo di programmazione (Celle calcolate e Maschere con Campi ridondanti), ma, tant'è. Diciamo che, molto probabilmente utilizzo ACCESS come il Contadino che, al posto del trattore, utilizza una Ferrari però, ... fino a quando il motore regge!!! e, in attesa di soluzioni più performanti ... In attesa di un Tuo eventuale interesse per una soluzione in ACCESS, procedo, anche se con scarse speranze, con l'utilizzo di Array in Excel. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 2.551 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
22/02/2017 10:49 | |
Buona giornata, DeadMan; niente da fare, anche utilizzando Array, i tempi di elaborazione, a mio avviso, non sono accettabili. A disposizione. Buon Lavoro e buona serata. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
| | Post: 1 | Registrato il: 27/12/2016
| Città: ROMA | Età: 57 | Utente Junior | 2013 | | OFFLINE | |
|
22/02/2017 20:50 | |
Deadman.78, 21/02/2017 17.01:
Come potete notare dal file in allegato, devo copiare il contenuto del foglio "Elenco Prezzi" nel foglio "Analisi", saltando 10 righe nel foglio "Analisi", e devo farlo per 1079 voci che arrivano alla riga 1117 del foglio "Elenco Prezzi". Quello che mi frega è quello che c'è tra una voce e un altra perchè altrimenti lo avrei fatto nel modo più semplice (trascina col mouse). Finora, seguendo le indicazioni trovate qua e la in internet ho utilizzato la seguente formula:
=INDICE('Elenco Prezzi'!$A$5:$F$1117;MAX($A$1:A3)+1;RIF.COLONNA())
il problema è che arrivato ad un certo punto, alla riga 114 del foglio "Analisi" corrispondente alla voce n°12, nella cella della quantità compare il numero 12 e questa cosa si ripete fino alla fine.
E per ultimo, arrivato alla voce n°54, corrispondente alla riga 544 del foglio "Analisi", se continuo a incollare la formula, oltre a ripetermi il n°12 come quantità, mi visualizza, fino alla fine, sempre la voce 54.
Vi prego aiutatemi altrimenti divento vecchio a fare copia e incolla per ogni singola voce.
Grazie
ciao Deadman.78
non sono una grande esperta ma io userei questa fornmula in A14 del foglio ANALISI che poi puoi copiare ogni 10 righe:
=INDICE('Elenco Prezzi'!$A$5:$F$1117;MAX($A4:$A5);RIF.COLONNA())
|
| | Post: 2.552 | Registrato il: 03/04/2013
| Utente Veteran | Excel 2000 - 2013 | | OFFLINE | |
|
22/02/2017 22:48 | |
Buona sera, DeadMan; consentimi di salutare @ Manu2016 e ringraziarla per il Contributo alla Discussione. Fatto ciò, dopo un'analisi più approfondita e una limatina al Codice VBA, considerando un DataSet di 1.133 Record, ho ridotto il Tempo di elaborazione a ~ 70 secondi. Un tempo ancora decisamente alto, ma, più "umano". Giusto il tempo di un breve scambio di convenevoli con il Collega d'Ufficio. Fai sapere se hai ancora problemi. A disposizione. Buona serata. Giuseppe
Windows XP - Excel 2000
Windows 10 - Excel 2013 |
|
|