Copiare intervallo inserendo nuove righe in vba

Anonimo
2023-09-03T11:09:20+00:00

Salve, come in oggetto, vorrei copiare un intervallo dati A7:AJ7 (che contiene celle vuote e/o con dati e/o con formule) per un numero "r" di righe successive, ma inserendo le righe necessarie e non sovrascrivendo nelle celle esistenti. Ho provato

.Range("A8:AJ" & r).Insert Shift:=xlShiftDown, CopyOrigin:=.Range("A7:AJ7")

Non solo inserisce un numero di righe molto superiore a "r" (non sono riuscito a capire con che moltiplicatore), ma non copia neppure i dati dell'intervallo A7:AJ7, ma solo la formattazione. Dove sbaglio?

Grazie.

Fabrizio

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

2 risposte

Ordina per: Più utili
  1. Anonimo
    2023-09-06T09:08:30+00:00

    Grazie per la risposta.

    Ho provato la tua soluzione, Ora inserisce il numero corretto di righe, ma non mi aggiorna correttamente i riferimenti in alcune formule circostanti (rige totali etc.) e in delle formattazioni condizionali che ho in una riga titoli.

    Ho quindi scelto un'altra strada, con un codice più complesso ma funziona bene. Inserisco delle righe vuote e riscrivo tramite codice dati e formule necessarie.

    Grazie comunque, saluti.

    Fabrizioi

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-09-03T12:55:28+00:00

    Ciao Fabri,

    Grazie per averci contattato. Mi chiamo Leo, un utente proprio come te. Sarei felice di aiutarti con la tua preoccupazione.

    Sembra che tu stia tentando di inserire righe successive "r" sotto l'intervallo A7:AJ7 preservando i dati e le formule esistenti in quelle celle. Per eseguire correttamente questa operazione in VBA, è necessario modificare il codice come segue:

    Sub InsertRowsAndCopyData() Dim r As Integer ' Change this to your desired number of rows to insert r = 5 ' Ad esempio, inserire 5 righe

    Insert "r" rows below A7:AJ7 Intervallo("A8:AJ7"). Resize(r). Inserisci Maiusc:=xlDown

    Copiare il contenuto (inclusi dati e formule) di A7:AJ7 e compilarlo nelle righe appena inserite Intervallo("A7:AJ7"). Copia destinazione:=Intervallo("A8:AJ" & (7 + r)) Fine sub

    Specificherà il numero di righe da inserire. Assicurarsi di impostare il valore di "r" sul numero desiderato di righe inserite prima di eseguire il codice. Spero che funzioni per te!

    Spero di aver fornito una soluzione utile per quanto riguarda il problema! Fammi sapere se hai altre domande.

    Migliori saluti

    Leone

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento