Il problema dei 3 corpi: Attraverso continenti e decadi, cinque amici geniali fanno scoperte sconvolgenti mentre le leggi della scienza si sgretolano ed emerge una minaccia esistenziale. Vieni a parlarne su TopManga.
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Macro per incollare riga

Ultimo Aggiornamento: 27/09/2016 14:16
Post: 2
Registrato il: 26/09/2016
Età: 35
Utente Junior
365
OFFLINE
26/09/2016 11:15

Ciao a tutti,
sto cercando di creare una macro che inserisca una nuova riga in un foglio excel, copiando la formattazione di una riga precedente predefinita (cancellandone però i contenuti); l'unico problema è che vorrei che la riga nella quale sia incollato il contenuto della riga predefinita (la riga 9 nel caso specifico) sia la prima riga "vuota", nella quale la cella BXXX sia vuota.


[CODE]Sub INS_RIGA()
'
' INS_RIGA Macro
'

'
Application.ScreenUpdating = False
Rows("9:9").Select
Selection.Copy
Rows("10:10").Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
Range("B10").Select
Selection.ClearContents
Range("C10").Select
Selection.ClearContents
Range("D10").Select
Selection.ClearContents
Range("I10").Select
Selection.ClearContents
Range("J10").Select
Selection.ClearContents
Range("B9").Select
Application.ScreenUpdating = True
End Sub

[/CODE]

Il codice che ho creato copia la riga 9, la incolla inserendo una nuova riga e va a cancellare i contenuti della riga 10 (mantenendo però la formattazione e le formule).
Io dovrei copiare la riga 9, cercare la prima riga vuota nel foglio dopo la riga 9, e incollare una nuova riga copiata dalla 9 (senza mantenere i valori, ma soltanto formule e formattazione).
E' fattibile secondo voi?
Post: 746
Registrato il: 06/04/2013
Utente Senior
2010
OFFLINE
26/09/2016 12:59

Re:
axel_gra, 26/09/2016 11.15:


...Io dovrei copiare la riga 9, cercare la prima riga vuota nel foglio dopo la riga 9, e incollare una nuova riga copiata dalla 9 (senza mantenere i valori, ma soltanto formule e formattazione).
E' fattibile secondo voi?



ma la riga 9 contiene solo formule?
se contiene valori e formule devi copiare solo le celle con formule o tutto: formule e valori?

Oppure devi fare quello che fa ora ma sulla prima libera ?

Devi comunque dire pure qual è la colonna che ha sempre un dato, altrimenti risulta complesso trovare la prima riga vuota.

In attesa, questa è la tua macro semplificata:
Sub INS_RIGA()
 Application.ScreenUpdating = False
 Rows("9:9").Copy
 Rows("10:10").Insert Shift:=xlDown
 Application.CutCopyMode = False
 Range("B10:D10,I10:J10").ClearContents
 Range("B9").Select
 Application.ScreenUpdating = True
End Sub


saluti
[Modificato da dodo47 26/09/2016 13:35]
Domenico
Win 10 - Excel 2016
Post: 2
Registrato il: 26/09/2016
Età: 35
Utente Junior
365
OFFLINE
26/09/2016 14:02

Re: Re:
dodo47, 26/09/2016 12.59:



ma la riga 9 contiene solo formule?
se contiene valori e formule devi copiare solo le celle con formule o tutto: formule e valori?

Oppure devi fare quello che fa ora ma sulla prima libera ?

Devi comunque dire pure qual è la colonna che ha sempre un dato, altrimenti risulta complesso trovare la prima riga vuota.

In attesa, questa è la tua macro semplificata:
Sub INS_RIGA()
 Application.ScreenUpdating = False
 Rows("9:9").Copy
 Rows("10:10").Insert Shift:=xlDown
 Application.CutCopyMode = False
 Range("B10:D10,I10:J10").ClearContents
 Range("B9").Select
 Application.ScreenUpdating = True
End Sub


saluti



Devo inserire una riga vuota e incollarci la riga 9 per intero (togliendo solamente il contenuto delle celle b,d,i,j). Questa riga deve essere inserita dopo l'ultima riga con del testo presente nella cella B. Allego il file per semplificare la comprensione...

[Modificato da axel_gra 26/09/2016 15:56]
Post: 747
Registrato il: 06/04/2013
Utente Senior
2010
OFFLINE
26/09/2016 15:58

Ciao
non è congruente quello che dici, almeno per quel che ho capito.

Intanto parliamo di "copiare" non "inserire", in quanto se la copia va fatta su una riga vuota, è inutile inserire.

Seconda cosa: se cancelli il contenuto della cella B, questa è vuota, quindi non ha del testo, pertanto la copia finirà nella riga successiva in cui la col B ha del testo.

Es:
colonne -->..A.........B...........C

riga9----->dato1....dato2.......dato3
riga10---->dato4....dato5.......dato6
riga11 (vuota)

se copio riga9 in riga11 (prima riga vuota) e poi cancello cella b11, succede questo:

riga9----->dato1....dato2.......dato3
riga10---->dato4....dato5.......dato6
riga11---->dato1................dato3

la prossima volta la copia andrà a finire in riga10 perché B11 è vuota pertanto:

riga9----->dato1....dato2.......dato3
riga10---->dato1................dato3
riga11---->dato1................dato3

Spero di essermi spiegato.

saluti
[Modificato da dodo47 26/09/2016 16:01]
Domenico
Win 10 - Excel 2016
Post: 4
Registrato il: 26/09/2016
Età: 35
Utente Junior
365
OFFLINE
26/09/2016 16:04

Re:
dodo47, 26/09/2016 15.58:

Ciao
non è congruente quello che dici, almeno per quel che ho capito.

Intanto parliamo di "copiare" non "inserire", in quanto se la copia va fatta su una riga vuota, è inutile inserire.

Seconda cosa: se cancelli il contenuto della cella B, questa è vuota, quindi non ha del testo, pertanto la copia finirà nella riga successiva in cui la col B ha del testo.

Es:
colonne -->..A.........B...........C

riga9----->dato1....dato2.......dato3
riga10---->dato4....dato5.......dato6
riga11 (vuota)

se copio riga9 in riga11 (prima riga vuota) e poi cancello cella b11, succede questo:

riga9----->dato1....dato2.......dato3
riga10---->dato4....dato5.......dato6
riga11---->dato1................dato3

la prossima volta la copia andrà a finire in riga10 perché B11 è vuota pertanto:

riga9----->dato1....dato2.......dato3
riga10---->dato1................dato3
riga11---->dato1................dato3

Spero di essermi spiegato.

saluti



Guarda il file che ho allegato sopra...devo inserire la riga e solamente dopo copiarla perchè altrimenti l'istogramma inserito a destra non funziona. La macro deve cercare nella colonna B se c'è testo inserito; alla prima cella vuota che incontra deve inserire una riga vuota e copiare il contenuto della riga 9 (formule e formattazioni) e poi eliminarne il contenuto...


[Modificato da axel_gra 26/09/2016 16:05]
Post: 1.895
Registrato il: 21/03/2008
Città: LOCATE VARESINO
Età: 76
Utente Veteran
2007 / 13
OFFLINE
26/09/2016 16:13

ciao

intanto saluto dodo

spero di capire cosa intendi fare
piccola modifica alla sub di dodo


Sub INS_RIGA()
Dim Nriga As Long
Nriga = Cells(Rows.Count, 2).End(xlUp).Row + 1
Application.ScreenUpdating = False
Rows("9:9").Copy
Range("a" & Nriga).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("B" & Nriga & ",D" & Nriga & ",I" & Nriga & ",J" & Nriga).ClearContents
Range("B9").Select
Application.ScreenUpdating = True
End Sub




Ciao da locate
excel 2007 / 13
Post: 751
Registrato il: 06/04/2013
Utente Senior
2010
OFFLINE
26/09/2016 16:49

Ciao
(un caro saluto locate...)

Axel_gra
Personalmente rimango della mia idea e cioè che la riga 9 viene copiata sempre nella riga 10 dato che B è vuoto.
Forse bisogna valutare col H visto che c'è una formula che comunque restituisce un valore e che pertanto può determinare che la successiva riga è vuota.

INOLTRE:
copiare la riga non va bene in quanto duplica anche il grafico non in modo corretto.

Domanda: il grafico va copiato? Se si, quello successivo si deve riferire alla rig 10 e poi alla riga 11 ecc ecc ?

saluti
[Modificato da dodo47 26/09/2016 17:11]
Domenico
Win 10 - Excel 2016
Post: 5
Registrato il: 26/09/2016
Età: 35
Utente Junior
365
OFFLINE
26/09/2016 17:20

Re:
locatevaresino, 26/09/2016 16.13:

ciao

intanto saluto dodo

spero di capire cosa intendi fare
piccola modifica alla sub di dodo


Sub INS_RIGA()
Dim Nriga As Long
Nriga = Cells(Rows.Count, 2).End(xlUp).Row + 1
Application.ScreenUpdating = False
Rows("9:9").Copy
Range("a" & Nriga).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("B" & Nriga & ",D" & Nriga & ",I" & Nriga & ",J" & Nriga).ClearContents
Range("B9").Select
Application.ScreenUpdating = True
End Sub








Il metodo funziona però non mi aggiorna l'istogramma a destra della figura poichè non inserisce la riga incollando il testo, bensì va ad incollare il testo, creando un nuovo istogramma...qualche idea?

Post: 6
Registrato il: 26/09/2016
Età: 35
Utente Junior
365
OFFLINE
27/09/2016 09:14

Re:
dodo47, 26/09/2016 16.49:

Ciao
(un caro saluto locate...)

Axel_gra
Personalmente rimango della mia idea e cioè che la riga 9 viene copiata sempre nella riga 10 dato che B è vuoto.
Forse bisogna valutare col H visto che c'è una formula che comunque restituisce un valore e che pertanto può determinare che la successiva riga è vuota.

INOLTRE:
copiare la riga non va bene in quanto duplica anche il grafico non in modo corretto.

Domanda: il grafico va copiato? Se si, quello successivo si deve riferire alla rig 10 e poi alla riga 11 ecc ecc ?

saluti



Vi allego il link del foglio aggiornato..
FOGLIO AGGIORNATO

Come vedete il tasto "+" funziona, però non aggiorna automaticamente l'istogramma a destra della tabella:ad ogni riga creata va ad inserire un altro istogramma
La macro che ho fatto sul tasto "-" funziona solamente se c'è del testo inserito nelle nuove righe, altrimenti cancella tutto...anche la riga delle intestazioni [SM=x423044]

Edit: ho sistemato il problema del DELETE, ora funziona...rimane solo il problema dell'istogramma duplicato
[Modificato da axel_gra 27/09/2016 10:37]
Post: 264
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Junior
Excel2019
OFFLINE
27/09/2016 11:08

Salve a tutti
Forse dirò una cavolata, ma tentar non nuoce.
Prova a spostare un tantino più in alto l'istogramma in modo tale che quando si copia la riga 9 il grafico non venga coinvolto nel "copia".

Ciao,
Mario
Post: 7
Registrato il: 26/09/2016
Età: 35
Utente Junior
365
OFFLINE
27/09/2016 11:28

Re:
Marius44, 27/09/2016 11.08:

Salve a tutti
Forse dirò una cavolata, ma tentar non nuoce.
Prova a spostare un tantino più in alto l'istogramma in modo tale che quando si copia la riga 9 il grafico non venga coinvolto nel "copia".

Ciao,
Mario




Grazie Mario, in effetti così non mi duplica più l'istogramma; il problema è però che non mi aggiunge le nuove righe al suo interno, ma si limita alla prima riga già inserita.
Post: 265
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Junior
Excel2019
OFFLINE
27/09/2016 14:10

Ciao
In un grafico, che io sappia, non si possono aggiungere righe o colonne ma bisogna intervenire sui "dati" delle serie X e Y

Ciao,
Mario
Post: 8
Registrato il: 26/09/2016
Età: 35
Utente Junior
365
OFFLINE
27/09/2016 14:16

Ce l'ho fatta intervendendo direttamente sul grafico e sulla sua posizione...tutto ok, grazie mille comunque

Esiste un metodo per settare automaticaente l'inzio della timeline del grafico a seconda della data impostata in una determinata cella oppure l'opeerazione deve essere fatta manualmente? [SM=x423054]
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 06:51. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com