copiare le sole celle valorizzate .... dipende.
Se copi quelle che contengono le formule, si crea un gran 'caos' poiche' verrebbero aggiustati i riferimenti.
Se vuoi copiare e incollare i 'soli valori' lo fai tramite un incolla speciale ...
Se vuoi il risultato in un unica cella puoi mettere questa formula
=SE(D1<>""; D1;"") &SE(D2<>"";" "&D2;"")&SE(D3<>"";" "&D3;"")&SE(D4<>"";" "&D4;"")&SE(D5<>"";&D5;"") &SE(D6<>"";" "&D6;"")&SE(D7<>"";" "&D7;"")&SE(D8<>"";" "&D8;"")&SE(D9<>"";" "&D9;"")&SE(D10<>"";" "&D10;"")
tutta su una riga.
Se invece vuoi una macro vera in VBA allora devi riuscire a CAPIRE quale è l'ultima cella valorizzata (il valore massimo di colonna 2 oppure colonna 1), registrare una macro manualmente da D1 a D7 (nel nostro esempio) e poi andare in 'modifica' della macro ad aggiustare il riferimento all'ultima riga sostituendo il valore MAX di cui parlavamo prima. Qualcosa del genere (tenendo conto che incollerò i valori copiati in colonna F).
Codice:
'---------------------------------------------------------------------------------------
' Procedura : CopiaSoloCelleConValore
' Autore : vanSOFTprojects
' Data : 20/03/2013
' Scopo : supporto forum
' eMail : ivan.casa@tin.it
' Usata da :
' Chiamate :
' Inputs :
' Output :
' Tipo : Sub
'------------------------------------------- vanSOFTprojects ----------------------------
Sub CopiaSoloCelleConValore()
Dim rigaMAX As Long
'------- definisco la riga massima
rigaMAX = Application.WorksheetFunction.Max(Range("A1:A10"))
'------- sostituisco la rigaMAX nelle coordinate di zona
'-- ... e seleziono
Range("D1:D" & rigaMAX).Select
'-- copio
Selection.Copy
'-- seleziono destinazione
Range("F1").Select
'-- incollo speciale solo Valori
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Ivan
Segnalibri