Ripetizione comando copia e incolla VBA

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
LucillaAugusta
00giovedì 10 gennaio 2013 12:22
Ciao!
sono una disperata studentessa che si deve laureare. Ho registrato una macro con valori relativi che copia e incolla una riga di 6 celle, per 14 volte nelle righe sottostanti (in una area relativa A1 F14)

ActiveCell.Offset(2, -18).Range("A1:F1").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:F15"), Type:= _
xlFillDefault
ActiveCell.Range("A1:F15").Select
ActiveCell.Offset(15, 0).Range("A1:F1").Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:F15"), Type:= _
xlFillDefault
ActiveCell.Range("A1:F15").Select


vorrei che questa macro ripetesse la stessa operazione fino alla fine del foglio, ogni 15 righe, perchè ogni 15 righe ho nuovi dati da copiare altre 14 volte nelle 14 righe successive.
Nel caso vorrei sapere se la stessa sub possa essere ripetuta anche con formule all'interno dell'area da copiare.


vi prego datemi una mano, graziee!
patel45
00giovedì 10 gennaio 2013 13:37
allega un file di esempio con il foglio attuale ed il risultato desiderato
raffaele1953
00giovedì 10 gennaio 2013 13:48
>>>vorrei che questa macro ripetesse la stessa operazione fino alla fine del foglio
La fine del foglio in excel 2003 è circa 65000 righe.
La fine del foglio in excel 2007 è circa 1048000 righe.
Pertanto leggere il terzo post nel forum (Versione Excel) aiuta Te nel ricevere tante risposte e soprattutto quelli che Ti danno una mano.
Meglio spostare un allegato (quando rispondi c'è un bottone carica foto/files)

Ps. Finchè non dichiari in quale cella sei.....e
>>>ActiveCell.Offset(2, -18).Range("A1:F1").Select
Casomai ActiveCell.Offset(0, -18).Range("A1:F1").Select

Non capisco cosa desideri fare. Ricopiare i valori della stessa riga???

Scusa Patel mi sono accavalcato.
LucillaAugusta
00giovedì 10 gennaio 2013 14:09
per ogni riga di partenza (cioè la 10, la 25, la 40 etc) dovrei fare le stesse operazioni che ho fatto per la prima.
LucillaAugusta
00giovedì 10 gennaio 2013 14:13
ho dovuto cancellare molte righe altrimenti non sarei riuscita a caricare il file. In realtà le righe sono circa 160000 quindi ovviamente non posso fare l'operazione a mano
LucillaAugusta
00giovedì 10 gennaio 2013 14:22
i dati contenuti nelle colonne A,B,C, D,E,F,G,H,I delle righe 10,25,40,55 etc, fino a circa 160000 rappresentano i miei dati di partenza relativi a tutti i comuni italiani. per ogni comune ci sono quindici possibili situazioni diverse (rappresentate dalla variazione dei parametri contenuti nelle colonne da K in avanti). a partire da questi dati dovrò poi fare delle elaborazioni, che mi permetteranno di ottenere quindici valori diversi per ogni comune. vorrei capire come fare velocemente le stesse operazioni fatte per il primo comune per tutti i comuni.
LucillaAugusta
00giovedì 10 gennaio 2013 14:25
a mano mi basta copiare l'area rettangolare contenente i dati e il programma fa tutto da solo, copia anche le formule. Ma non so come fare a dirgli di fare questa operazione in automatico fino alla riga n°160000!
patel45
00giovedì 10 gennaio 2013 14:34
non ho capito niente, dove sarebbe il risultato desiderato ?
in un foglio devi mettere i dati di partenza (50 righe)
in un altro il risultato desiderato

inoltre non puoi iniziare una macro con ActiveCell, come si fa a sapere qual'è la cella attiva ?
LucillaAugusta
00giovedì 10 gennaio 2013 14:45
il risultato desiderato sarebbe questo. L'ho fatto copiando e incollando manualmente. però nel file reale (che non riesco a caricare sul sito perchè troppo grande) le righe di input con ID,LONG,LAT sono molte di più quindi vorrei farlo in automatico
raffaele1953
00giovedì 10 gennaio 2013 15:07
Forse non ho capito nulla.
Di sicuro rispondere al post (Versione Excel) noooooo?
Comunque è 2007
Alt+F11 e mettere nel foglio stesso

Sub ricopia()
Riga = Range("A" & Rows.Count).End(xlUp).Row
For y = 10 To Riga Step 15
If y >1048569-14 then exit sub
Range(Cells(y, 4), Cells(y, 18)).Select
Selection.Copy
Range(Cells(y + 1, 4), Cells(y + 14, 18)).Select
Selection.PasteSpecial
Next y
MsgBox ("fatto")
End Sub

Ps. riga 1048550 esce dalla sub
LucillaAugusta
00giovedì 10 gennaio 2013 15:29
scusa raffaele1953 non avevo letto bene il post, si comunque era 2007. grazie mille la sub ha funzionato! ha copiato la prima riga di ogni comune e l'ha incollata nelle 14 righe sottostanti..perfetto! ora dovrei copiare e incollare (con paste special in modo da copiare anche le formule) il rettangolo che va da K10 a R24 su ogni comune. Come faccio? si può fare modificando la sub che mi hai dato?? grazie!!!!
raffaele1953
00giovedì 10 gennaio 2013 15:41
Anche in questo caso, non hai inserito la Firma di Excel ( post Versione Excel).
L'hai solo dichiarato in questo post, per il futuro dobbiamo richiederlo?.

Ps. A me sembra che ricopia anche le formule?
Forse mi sbaglio, perchè non alleghi un files + le formule?

Ppps Forse ho capito, intendi dire che le formule NON sono nella stessa riga. mà in altro posto?
LucillaAugusta
00giovedì 10 gennaio 2013 15:54
non so come fare per inserire la firma. sì, ricopia anche le formule ma la sub che mi hai dato copia la prima riga sulle successive 14 e questo mi va bene x le colonne fino alla I. Nelle colonne dopo la K invece avrei bisogno che tutto il rettangolo da K10 a R24 venga copiato ed incollato nei rettangoli successivi K25-R39, K40-R54 etc. Questo perchè le righe contengono formule e valori diversi. (A differenza delle colonne fino alla I che contengono tutte gli stessi valori).

nel file che ho caricato come risultato desiderato si vede bene cosa intendo (credo)
raffaele1953
00giovedì 10 gennaio 2013 17:05
>>>non so come fare per inserire la firma.
Leggi il post http://freeforumzone.leonardo.it/discussione.aspx?idd=9561389

>>>fino alla I
Fino alla R (scritto nella macro)

>>>nel file che ho caricato come risultato desiderato si vede bene cosa intendo (credo)
Io non vedo formule in K10 a R24, solo dati
LucillaAugusta
00giovedì 10 gennaio 2013 17:21
firma messa. si nella macro andava fino a R però mi sono accorta che in realtà per le colonne da K a R avrei bisogno di una sub diversa da quella che mi hai dato prima. provo a ricaricare il file comunque dovrebbero esserci formule. Se non nelle prime righe almeno nelle altre.
il problema comunque non è quello delle formule perchè anche la sub di prima le copiava..è che devo copiare non più la prima riga di ogni comune ma lo stesso rettangolo fino alla fine (tutto il rettangolo da K10 a R24 deve essere copiato ed incollato nei rettangoli successivi K25-R39, K40-R54.)
raffaele1953
00giovedì 10 gennaio 2013 18:08
Prova in questo modo....

"Modifica"
Meglio questa se ho capito bene

Sub ricopia2()
Riga = Range("A" & Rows.Count).End(xlUp).Row
For y = 10 To Riga Step 15
If y > 1048555 Then Exit Sub
Range(Cells(y, 11), Cells(y + 14, 18)).Select
Selection.Copy
Range(Cells(y + 15, 11), Cells(y + 30, 18)).Select
Selection.PasteSpecial
Next y
MsgBox ("fatto")
End Sub
LucillaAugusta
00giovedì 10 gennaio 2013 18:39
ho inserito questa modificata da me e sta girando.. vediamo cosa succede!

Sub ricopia()
Riga = Range("A" & Rows.Count).End(xlUp).Row
For y = 10 To Riga Step 15
If y > 1048569-14 then exit sub
Range(Cells(10, 11), Cells(24, 18)).Select
Selection.Copy
Range(Cells(y+15, 11), Cells(y+29, 18)).Select
Selecion.PasteSpecial
Next y
MsgBox ("fatto")
End Sub
DARIO.d02
00giovedì 9 giugno 2016 14:07
mi puo essere utile
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 21:47.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com