maurogsc.eu
|
![]() |
home ==> Excel: come fare per ==> Copia/incolla fra due fogli dello stesso file
Copia/incolla fra due fogli dello stesso
file
- VBA
NOTA. La soluzione ed il codice sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dal codice o dalla soluzione proposta se usati impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare il codice o la soluzione in files importanti.
0 - Contenuto
1 - Premessa e contesto. (top)
Modificate i riferimenti alle celle ed i nomi dei fogli con i vostri. Negli
esempi viene sempre utilizzata quella che in Excel è chiamata programmazione
ad oggetti e vengono sempre evitati gli inutili Select/Activate che, oltre a
rallentare l'esecuzione del codice, sono forieri di grossi guai.
2 - Copia/incolla la cella A1 del Foglio1 nella cella A1 del
Foglio2(tutto). (top)
Vengono copiati il contenuto (valore o funzione/formula) e le
formattazioni della cella (non quelle relative alle dimensioni di riga e colonna).
Codice da copia/incollare in un modulo standard.
Public Sub m()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
'metto un riferimento ai due fogli
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'copio da un foglio all'altro
.Range("A1").Copy Destination:=sh2.Range("A1")
End With
'Set a Nothing delle variabili oggetto
Set sh2 = Nothing
Set sh1 = Nothing
End Sub
3 - Copia/incolla la cella A1 del Foglio1 nella cella A1 del
Foglio2(valore). (top)
Viene copiato solo il valore (non la funzione/formula o le
formattazioni). Codice da copia/incollare in un modulo standard.
Public Sub m()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
'metto un riferimento ai due fogli
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'copio da un foglio all'altro
sh2.Range("A1").Value = .Range("A1").Value
End With
'Set a Nothing delle variabili oggetto
Set sh2 = Nothing
Set sh1 = Nothing
End Sub
4 - Copia/incolla del Range A1:C10 del Foglio1 a partire dalla
cella A1 del
Foglio2(tutto). (top)
Vengono copiati il
contenuto (valore o funzione/formula) e le formattazioni delle celle (non quelle
relative alle dimensioni di riga e colonna). Codice da copia/incollare in un
modulo standard.
Public Sub m()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
'metto un riferimento ai due fogli
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'copio da un foglio all'altro
.Range("A1:C10").Copy Destination:=sh2.Range("A1")
End With
'Set a Nothing delle variabili oggetto
Set sh2 = Nothing
Set sh1 = Nothing
End Sub
Nota. La cella di destinazione può ovviamente essere diversa.
5 - Copia/incolla del Range A1:C10 del Foglio1 a partire
dalla cella A1 del Foglio2(valore). (top)
Viene copiato solo il valore (non la funzione/formula o le
formattazioni). Codice da copia/incollare in un modulo standard.
Public Sub m()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
'metto un riferimento ai due fogli
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'copio da un foglio all'altro
.Range("A1:C10").Copy
sh2.Range("A1").PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
'Set a Nothing delle variabili oggetto
Set sh2 = Nothing
Set sh1 = Nothing
End Sub
Nota. La cella di destinazione può ovviamente essere diversa.
6 - Copia/incolla di celle non attigue(A1:A10, C1:C10) del Foglio1 a partire dalla
cella A1 del
Foglio2(tutto). (top)
Vengono copiati il contenuto (valore o funzione/formula) e le
formattazioni delle celle (non quelle relative alle dimensioni di riga e colonna).
1. Nell'esempio vengono copiati i Range A1:A10 e C1:C10 del Foglio1 che verranno incollati in A1:B10 del Foglio2. Codice da copia/incollare in un modulo standard.
Public Sub m()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim rng As Range
'metto un riferimento ai due fogli
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'metto un riferimento ai Range da copiare
Set rng = Union(.Range("A1:A10"), .Range("C1:C10"))
'copio da un foglio all'altro
rng.Copy Destination:=sh2.Range("A1")
End With
'Set a Nothing delle variabili oggetto
Set rng = Nothing
Set sh2 = Nothing
Set sh1 = Nothing
End Sub
2. Nell'esempio vengono copiati i Range A1:A10 e C1:C10 del Foglio1 che verranno incollati in A1:A10 e C1:C10 del Foglio2. Codice da copia/incollare in un modulo standard.
Public Sub m()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim rng As Range
Dim a As Range
'metto un riferimento ai due fogli
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'metto un riferimento ai Range da copiare
Set rng = Union(Range("A1:A10"), Range("C1:C10"))
'copio da un foglio all'altro
For Each a In rng.Areas
.Range(a.Address).Copy Destination:=sh2.Range(a.Address)
Next
End With
'Set a Nothing delle variabili oggetto
Set a = Nothing
Set rng = Nothing
Set sh2 = Nothing
Set sh1 = Nothing
End Sub
7 - Copia/incolla di celle non attigue(A1:A10, C1:C10) del Foglio1 a partire dalla
cella A1 del
Foglio2(valore). (top)
Viene copiato solo il
valore (non la funzione/formula o le formattazioni)..
1. Nell'esempio vengono copiati i Range A1:A10 e C1:C10 del Foglio1 che verranno incollati in A1:B10 del Foglio2. Codice da copia/incollare in un modulo standard.
Public Sub m()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim rng As Range
'metto un riferimento ai due fogli
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'metto un riferimento ai Range da copiare
Set rng = Union(Range("A1:A10"), Range("C1:C10"))
'copio da un foglio all'altro
.Range(rng.Address).Copy
sh2.Range("A1").PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
'Set a Nothing delle variabili oggetto
Set rng = Nothing
Set sh2 = Nothing
Set sh1 = Nothing
End Sub
2. Nell'esempio vengono copiati i Range A1:A10 e C1:C10 del Foglio1 che verranno incollati in A1:A10 e C1:C10 del Foglio2. Codice da copia/incollare in un modulo standard.
Public Sub m()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim rng As Range
Dim a As Range
'metto un riferimento ai due fogli
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'metto un riferimento ai Range da copiare
Set rng = Union(Range("A1:A10"), Range("C1:C10"))
'copio da un foglio all'altro
For Each a In rng.Areas
.Range(a.Address).Copy
sh2.Range(a.Address).PasteSpecial xlPasteValues
Next
End With
Application.CutCopyMode = False
'Set a Nothing delle variabili oggetto
Set a = Nothing
Set rng = Nothing
Set sh2 = Nothing
Set sh1 = Nothing
End Sub
8 - Copia/incolla di celle non attigue(A1:A10, C1:C10) del Foglio1
in Range diversi del Foglio2(tutto). (top)
Vengono copiati il contenuto (valore o funzione/formula) e le formattazioni
delle celle (non quelle relative alle dimensioni di riga e colonna). Nell'esempio vengono copiati
i Range A1:A10 e C1:C10 del Foglio1 che verranno incollati a partire da
H10(A1:A10) e C5(C1:C10) nel Foglio2. Codice da copia/incollare in
un modulo standard.
Public Sub m()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim rng As Range
'metto un riferimento ai due fogli
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'metto un riferimento ai Range da copiare
Set rng = Union(.Range("A1:A10"), .Range("C1:C10"))
End With
With rng
'copio da un foglio all'altro
.Areas(1).Copy Destination:=sh2.Range("H10")
.Areas(2).Copy Destination:=sh2.Range("C5")
End With
'Set a Nothing delle variabili oggetto
Set rng = Nothing
Set sh2 = Nothing
Set sh1 = Nothing
End Sub
9 - Copia/incolla di celle non attigue(A1:A10, C1:C10) del Foglio1
in Range diversi del Foglio2(valore). (top)
Viene copiato solo il
valore (non la funzione/formula o le formattazioni). Nell'esempio vengono copiati
i Range A1:A10 e C1:C10 del Foglio1 che verranno incollati a partire da
H10(A1:A10) e C5(C1:C10) nel Foglio2.
Codice da copia/incollare in un modulo standard.
Public Sub m()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim rng As Range
'metto un riferimento ai due fogli
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'metto un riferimento ai Range da copiare
Set rng = Union(.Range("A1:A10"), .Range("C1:C10"))
End With
With rng
'copio da un foglio all'altro
.Areas(1).Copy
sh2.Range("H10").PasteSpecial xlPasteValues
.Areas(2).Copy
sh2.Range("C5").PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
'Set a Nothing delle variabili oggetto
Set rng = Nothing
Set sh2 = Nothing
Set sh1 = Nothing
End Sub
10 - Copia/incolla la formattazione(non il valore) della cella A1 del Foglio1 nella cella A1 del Foglio2. (top)
Viene copiata solo la formattazione(non il valore o le formattazioni di riga e
colonna). Nell'esempio viene copiata la formattazione della cella A1 del
Foglio1 nella cella A1 del Foglio2. Codice da copia/incollare in un
modulo standard.
Public Sub m()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
'metto un riferimento ai due fogli
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'copio la formattazione da un foglio all'altro
.Range("A1").Copy
sh2.Range("A1").PasteSpecial xlPasteFormats
End With
'Set a Nothing delle variabili oggetto
Set sh2 = Nothing
Set sh1 = Nothing
End Sub
11 - Copia/incolla la formattazione(non il valore) del Range A1:C10 del Foglio1
sul Foglio2 a partire dalla cella A1. (top)
Viene copiata solo la formattazione(non il valore o le formattazioni di riga e
colonna). Nell'esempio viene copiata la formattazione delle celle A1:C10 del
Foglio1 sul Foglio2 a partire dalla cella A1.
Codice da copia/incollare in un modulo standard.
Public Sub m()
'dichiaro le variabili
Dim sh1 As Worksheet
Dim sh2 As Worksheet
'metto un riferimento ai due fogli
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
'copio la formattazione da un foglio all'altro
.Range("A1:C10").Copy
sh2.Range("A1").PasteSpecial xlPasteFormats
End With
'Set a Nothing delle variabili oggetto
Set sh2 = Nothing
Set sh1 = Nothing
End Sub
Per ulteriori informazioni su Microsoft Excel ed il suo Visual Basic, utilizzate questo
forum:
http://social.answers.microsoft.com/Forums/it-IT/officeexcelit/threads
Ultimo aggiornamento di questa pagina: 21/02/2011 - mauro gamberini