2012-12-12 25 views
18

Ho una riga in cui esistono formule che utilizzano valori della stessa riga. La riga successiva è vuota, solo con un colore di sfondo diverso.Copia della formula sulla riga successiva quando si inserisce una nuova riga

Ora, se inserisco una nuova riga (facendo clic con il tasto destro sulla riga vuota e "inserisci"), ottengo una nuova riga con NESSUN colore di sfondo (che è quello che voglio), ma la linea NON contenere eventuali formule: come faccio a ottenere Excel per essere più intelligente e copiare le formule dalla riga precedente, quando si crea la nuova riga?

Un'altra informazione: le informazioni di convalida dei dati (ad esempio un elenco a discesa) vengono copiate quando si inserisce la nuova riga.

Grazie.

+0

Come posso utilizzare VBA? Posso attivare una macro quando inserisco una riga? – Manu

+0

Un'altra informazione: le informazioni sulla convalida dei dati (ad esempio un elenco a discesa) vengono copiate quando si inserisce la nuova riga. – Manu

risposta

21

rendere l'area con i tuoi dati e le formule di una tabella:

enter image description here

Poi l'aggiunta di nuove informazioni nella riga successiva copierà tutte le formule in tale tabella per la nuova linea. La convalida dei dati verrà applicata anche per la nuova riga così come lo era per l'intera colonna. In effetti, Excel è più intelligente con i tuoi dati.

NO VBA richiesto ...

+3

(1/2) Solo per notare, Excel aggiungerà le intestazioni di filtraggio e le righe a banda sul tavolo. Inoltre, è meglio non selezionare le intestazioni * effettive * e deselezionare "La mia tabella ha intestazioni". Excel aggiungerà le intestazioni generiche, ma nella scheda Tabella puoi rimuovere questa riga di intestazione. Mentre ci sei, puoi anche disabilitare le Righe a banda. – ADTC

+3

(2/2) Una volta rimossa la riga di intestazione, una riga vuota verrà lasciata al suo posto. L'eliminazione della riga vuota in qualsiasi modo causerà l'errore "formula incoerente", anche se le formule sono coerenti. Basta modificare la formula e applicarla di nuovo - Excel offrirà persino di mantenere la formula aggiornata per l'intera colonna. Oppure puoi scegliere Ignora errore. – ADTC

+0

PS: un problema con questa soluzione è che le celle unite si scompongono e non è possibile unirle utilizzando la funzione Unisci celle (che verrebbe disabilitata quando ci si trova nella tabella). Immagino che devi solo imparare a conviverci (o espandere la larghezza della colonna, se puoi). – ADTC

1

È necessario inserire la nuova riga e quindi copiare dalla riga di origine alla riga appena inserita. Excel ti consente di incollare solo le formule speciali. Quindi, in Excel:

  • inserire la nuova riga
  • Copiare la riga di origine
  • Selezionare la riga di destinazione appena creata, fare clic destro e Incolla speciale
  • Incolla come formule

VBA se richiesto con Righe ("1: 1") di destinazione e Righe ("2: 2") target:

Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
Rows("2:2").Clear 

Rows("1:1").Copy 
Rows("2:2").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone 
+0

Non voglio fare la copia della formula manualmente. C'è un modo? – Manu

+0

Un'altra informazione: le informazioni sulla convalida dei dati (ad esempio un elenco a discesa) vengono copiate quando si inserisce la nuova riga. La convalida dei dati – Manu

+0

non deve essere copiata quando si inserisce una nuova riga. Fintanto che non stai copiando e quindi inserendo la riga sorgente. È necessario inserire una riga, quindi copiare l'origine e incollare formule speciali nella destinazione come descritto sopra. – InContext

2

Un'altra cosa fondamentale che ho trovato per quanto riguarda le righe di copia all'interno di una tabella, è che il foglio di lavoro che si sta lavorando deve essere attivato. Se si dispone di una cartella di lavoro con più fogli, è necessario salvare il foglio da cui è stata chiamata la macro, quindi attivare il foglio con la tabella. Una volta terminato, è possibile riattivare il foglio originale.

È possibile utilizzare Application.ScreenUpdating = False per assicurarsi che l'utente non veda che si stanno spostando i fogli di lavoro all'interno della macro.

Se non si attiva il foglio di lavoro, la copia non sembra funzionare correttamente, ad esempio alcune cose sembrano funzionare e altre no?

0

Se si dispone di un foglio di lavoro con molte righe che contengono tutte la formula, il metodo di gran lunga più semplice è copiare una riga senza dati (ma contiene formule) e quindi "inserire celle copiate" sotto/sopra la riga in cui si desidera aggiungere. Le formule rimangono. In un pizzico, è OK usare una riga con i dati. Basta cancellarlo o sovrascriverlo dopo averlo incollato.

Problemi correlati