La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Buongiorno a tutti,
avrei bisogno di aggiungere una riga composta da 3 righe (quindi una selezione di 3 righe è come se fosse una riga, di conseguenza quando dico "aggiungere una riga" intendo dire "aggiungere 3 righe").
Io riesco già ad aggiungere una riga tramite la macro, ma il fatto sta che io devo copiare la riga prima, aggiungerla sotto e poi svuotare le celle che si devono compilare manualmente. Le prime 2 righe (della selezione da 3) sono composte da testo o formule, ma che non dovranno mai essere compilati manualmente. Solamente la terza riga (sempre della selezione) ha delle celle che devono essere compilate manualmente e altre che bisogna lasciarle così perchè hanno una formula. Nel file d'esempio, troverete una cella con scritto "MOUSE QUI", questo perchè, prima di applicare la scelta rapida per l'attivazione della macro, bisogna selezionare quest'ultima cella per poter selezionare bene la riga sopra (riferimenti relativi). E' possibile applicare la macro anche nel file d'esempio, così che capiate bene cosa intendo. Io utilizzerei benissimo anche questo codice, solamente che dopo un certo utilizzo (anche 20/30 volte) il processo della macro tende a rallentare. Il mio obiettivo è quello di non portarlo a rallentare, ma a tenerlo sempre costante. Questo file è fatto per poterlo utilizzare in un anno, di conseguenza le righe che si possono aggiungere sono fino a 1.500 (tenendo conto che una riga è composta da 3, è come se fossero 4.500 righe di Excel).
Di seguito vi indico il codice che ho applicato per la macro (che trovate anche nel file che allegherò):
Sub Aggiungere_righe() ' ' Aggiungere_righe Macro ' Con anche lo svuotamento delle righe ' ' Scelta rapida da tastiera: CTRL+MAIUSC+A ' ActiveCell.Offset(-4, 0).Rows("1:5").EntireRow.Select Selection.Copy ActiveCell.Offset(3, 0).Rows("1:1").EntireRow.Select ActiveSheet.Paste ActiveCell.Offset(2, 2).Range("A1:N1").Select Selection.ClearContents ActiveCell.Offset(0, 15).Range("A1:G1").Select Selection.ClearContents ActiveCell.Offset(0, 8).Range("A1:D1").Select Selection.ClearContents ActiveCell.Offset(2, -24).Range("A1").Select End Sub
ciao
vedi nell'altro forum ti hanno messo una risposta con un file esempio.
Se va bene per favore chiudi questa discussione
in caso contrario vediamo se Marius o altri hanno idea di come fare.
io conosco le formule e poco il VBA
in questo forum è vietato il cross posting nell'altro no.
comunque aspettiamo a vedere se hai risolto con la risposta di Alex
ciao
Ciao
Non ho visto l'altra discussione a cui fa riferimento Gianfranco (un caro saluto) ma per copiare le righe 3:5 e incollarle nella prima cella vuota del Foglio Operatore farei così (per cancellare e copiare negli altri fogli non ho capito)
Sub prova() Dim ur As Long Range("A3:AG5").Copy 'copia righe 3:5 ur = Cells(Rows.Count, 2).End(xlUp).Row + 1 'incolla nella prima cella libera Range("A" & ur & ":AG" & ur).PasteSpecial xlPasteAll Stop 'cancella dati '.............. End Sub
Buona sera, sono riuscito a risolvere sull'altro forum. Cosa devo fare qui in questo caso?
ciao
ti chiudo io la discussione visto
che non c'è la soluzione.
ricorda in questo forum non è permesso il cross posting