Condividi:        

Excel - Macro per incollare valori

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Excel - Macro per incollare valori

Postdi sasy89 » 29/03/13 13:50

Buongiorno,
ho creato un file excel che mi calcola le probbabilità che un dato evento si manifesti e ho un archivio dove salvo tutti i risultati, nello specifico ho i dati che vanno dalla cella C3 a J3.
ho un pulsante "INSERISCI" al quale è assegnato una macro che copia i dati nella prima riga vuota che è il seguente:
Codice: Seleziona tutto
 Sub Incolla_dati()
Range("C3:J3").Copy Destination:=Range("C65535").End(xlUp).Offset(1, 0)
End Sub

purtroppo mi copia le formule che ci sono in C3:J3 restituendomi nella prima riga vuota tutti 0.
la mia domanda è come posso fare per incollare i valori (incolla speciale - valori) anzichè fare un copia e incolla semplice?
Grazie a tutti per l'aiuto
sasy89
Utente Junior
 
Post: 14
Iscritto il: 27/09/12 18:14

Sponsor
 

Re: Excel - Macro per incollare valori

Postdi Flash30005 » 29/03/13 14:08

Prova così
Codice: Seleziona tutto
Sub Incolla_dati()
    UR = Range("C" & Rows.Count).End(xlUp).Row + 1
    Range("C1:J1").Copy
    Range("C" & UR).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub


ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Excel - Macro per incollare valori

Postdi Gigi_ » 29/03/13 14:21

Ciao io pensavo a questa forma:
Codice: Seleziona tutto
Sub Incolla_dati()
Range("C65535").End(xlUp).Offset(1, 0).Value = Range("C3")
Range("D65535").End(xlUp).Offset(1, 0).Value = Range("D3")
Range("E65535").End(xlUp).Offset(1, 0).Value = Range("E3")
Range("F65535").End(xlUp).Offset(1, 0).Value = Range("F3")
Range("G65535").End(xlUp).Offset(1, 0).Value = Range("G3")
Range("H65535").End(xlUp).Offset(1, 0).Value = Range("H3")
Range("I65535").End(xlUp).Offset(1, 0).Value = Range("I3")
Range("J65535").End(xlUp).Offset(1, 0).Value = Range("J3")
End Sub

Approfitto della Presenza di Flash per chiedere: come se ne può fare un ciclo, insomma evitare di ripetere tutti i campi come ho grossolanamente fatto io (immagina poi se invece di 8 fossero decine...). SO che puoi darmi la risposta... grazie
Gigi_
win 7 + office 2003
Avatar utente
Gigi_
Utente Senior
 
Post: 344
Iscritto il: 14/11/09 21:51

Re: Excel - Macro per incollare valori

Postdi Anthony47 » 29/03/13 14:34

Ma in questo esempio non c' e' nessun vantaggio a trasformare 1 copia in una serie di copie...
Mi permetto anche di suggerire una possibile alternativa a quanto gia' proposto:
Codice: Seleziona tutto
Cells(Rows.Count, "C").End(xlUp).Offset(1, 0).Resize(1, 8).Value = Range("C3:J3").Value

Ciao a tutti.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel - Macro per incollare valori

Postdi ricky53 » 29/03/13 14:41

Ciao Gigi
dopo aver provato quanto ti ha suggerito Anthony ...
prova questo codice che fa la stessa cosa che ti ha indicato Anthony ...
Codice: Seleziona tutto
Sub Incolla_dati()
' Copia i dati dalla colona "C"  a  colonna "J" della riga  "3" sulla prima cella libera dell'intervallo "C:J"
    For I = 3 To 10
        UR = Cells(Rows.Count, I).End(xlUp).Row + 1
        Cells(UR, I) = Cells(3, I)
    Next I
End Sub
Ultima modifica di ricky53 su 29/03/13 14:45, modificato 1 volte in totale.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Excel - Macro per incollare valori

Postdi sasy89 » 29/03/13 14:43

Flash30005 ha scritto:Prova così
Codice: Seleziona tutto
Sub Incolla_dati()
    UR = Range("C" & Rows.Count).End(xlUp).Row + 1
    Range("C1:J1").Copy
    Range("C" & UR).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub


ciao

Grazie mille questo codice funziona perfettamente :D ..grazie anche agli altri che mi hanno aiutato
sasy89
Utente Junior
 
Post: 14
Iscritto il: 27/09/12 18:14

Re: Excel - Macro per incollare valori

Postdi Gigi_ » 29/03/13 14:56

ricky53 ha scritto:Ciao Gigi
dopo aver provato quanto ti ha suggerito Anthony ...
prova questo codice che fa la stessa cosa che ti ha indicato Anthony ...
Codice: Seleziona tutto
Sub Incolla_dati()
' Copia i dati dalla colona "C"  a  colonna "J" della riga  "3" sulla prima cella libera dell'intervallo "C:J"
    For I = 3 To 10
        UR = Cells(Rows.Count, I).End(xlUp).Row + 1
        Cells(UR, I) = Cells(3, I)
    Next I
End Sub

:!: :!: questa l'ho capita, grazie! sto studiando l'altra, ha argomenti nuovi per me, moolto interessanti entrambe. :)
Gigi_
win 7 + office 2003
Avatar utente
Gigi_
Utente Senior
 
Post: 344
Iscritto il: 14/11/09 21:51

Re: Excel - Macro per incollare valori

Postdi ricky53 » 29/03/13 15:26

Ciao,
quella di Anthony è potente perchè utilizzando "Resize" può essere anche "COMPATTA"
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "Excel - Macro per incollare valori":


Chi c’è in linea

Visitano il forum: Nessuno e 63 ospiti