Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Copia e incolla in Excel 2010

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

Re: Copia e incolla in Excel 2010

Postdi ricky53 » 23/10/12 11:56

Ciao,
se il componente aggiuntivo, che ci hai inviato, non fosse stato protetto avremmo copiato ed adattato il codice e risolto in poco tempo e con poco impegno.

In questo caso occorrerà scrivere da zero tutto il codice ... ci vorrà un po' di tempo.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Sponsor
 

Re: Copia e incolla in Excel 2010

Postdi scossa » 23/10/12 12:41

gimart ha scritto:Confermo che voglio che mi copii: larghezza colonne, altezza righe, sfondi e bordi delle celle, testi, caratteri con relativi font e dimensioni, commenti e quant'altro :) . Cioè tutto quello che il vecchio componente copia.xla mi faceva. E' ben chiaro che occorrerà una macro scritta in VBA, ma se si è fatto per il 2003, certamente si potrà fare per il 2010. Ho molta fiducia in questo Forum.


Non ho visto il componente aggiuntivo ma questa macro dovrebbe fare quello che chiedi.
Prima devi selezionare le celle DA copiare e poi la lanci. Quando ti verrà chiesto di selezionare la destinazione, basta selezionare una sola cella e premere OK.

Codice: Seleziona tutto
'---------------------------------------------------------------------------------------
' Procedure : CopiaTutto
' Author    : scossa
' Date      : 23/10/2012
'---------------------------------------------------------------------------------------
'
Public Sub CopiaTutto()
  Dim rngFrom As Range
  Dim rngTo As Range
  Dim rRowCol As Range
  Dim j As Long

  Set rngFrom = Selection
  On Error Resume Next
    Set rngTo = Application.InputBox("destinazione:", Type:=8)
  On Error GoTo 0
  If Not rngTo Is Nothing And Err.Number = 0 And Intersect(rngFrom, rngTo) Is Nothing Then
    rngFrom.Copy rngTo(1, 1)
    For Each rRowCol In rngFrom.Rows
      j = j + 1
      rngTo.Rows(j).RowHeight = rRowCol.RowHeight
    Next
    j = 0
    For Each rRowCol In rngFrom.Columns
      j = j + 1
      rngTo.Columns(j).ColumnWidth = rRowCol.ColumnWidth
    Next
  Else
    MsgBox "operazione abortita", vbCritical, "AVVISO"
  End If
  Set rngFrom = Nothing
  Set rngTo = Nothing
End Sub
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Copia e incolla in Excel 2010

Postdi gimart » 23/10/12 13:15

Scossa, funziona perfettamente :) . Una cosa però non ho capito: finchè io debbo copiare le celle selezionate in altra zona dello stesso foglio, va tutto bene: nella finestra "Destinazione" digito il nome della cella origine e la copia viene effettuata perfettamente. Ma come faccio se la copia (ed è il caso più frequente per me) deve essere fatta su un altro foglio o, addirittura, su un altro file?
gimart
Win 10 and Office 2010
Avatar utente
gimart
Utente Senior
 
Post: 720
Iscritto il: 21/02/10 12:09

Re: Copia e incolla in Excel 2010

Postdi scossa » 23/10/12 13:36

scossa ha scritto:
gimart ha scritto:Confermo che voglio che mi copii: larghezza colonne, altezza righe, sfondi e bordi delle celle, testi, caratteri con relativi font e dimensioni, commenti e quant'altro :) . Cioè tutto quello che il vecchio componente copia.xla mi faceva. E' ben chiaro che occorrerà una macro scritta in VBA, ma se si è fatto per il 2003, certamente si potrà fare per il 2010. Ho molta fiducia in questo Forum.


Non ho visto il componente aggiuntivo ma questa macro dovrebbe fare quello che chiedi.
Prima devi selezionare le celle DA copiare e poi la lanci. Quando ti verrà chiesto di selezionare la destinazione, basta selezionare una sola cella e premere OK.

Codice: Seleziona tutto
'---------------------------------------------------------------------------------------
' Procedure : CopiaTutto
' Author    : scossa
' Date      : 23/10/2012
'---------------------------------------------------------------------------------------
'
Public Sub CopiaTutto()
  Dim rngFrom As Range
  Dim rngTo As Range
  Dim rRowCol As Range
  Dim j As Long

  Set rngFrom = Selection
  On Error Resume Next
    Set rngTo = Application.InputBox("destinazione:", Type:=8)
  On Error GoTo 0
  If Not rngTo Is Nothing And Err.Number = 0 And Intersect(rngFrom, rngTo) Is Nothing Then
    rngFrom.Copy rngTo(1, 1)
    For Each rRowCol In rngFrom.Rows
      j = j + 1
      rngTo.Rows(j).RowHeight = rRowCol.RowHeight
    Next
    j = 0
    For Each rRowCol In rngFrom.Columns
      j = j + 1
      rngTo.Columns(j).ColumnWidth = rRowCol.ColumnWidth
    Next
  Else
    MsgBox "operazione abortita", vbCritical, "AVVISO"
  End If
  Set rngFrom = Nothing
  Set rngTo = Nothing
End Sub


Errata:
Codice: Seleziona tutto
  If Not rngTo Is Nothing And Err.Number = 0 And Intersect(rngFrom, rngTo) Is Nothing Then

Corrige:
Codice: Seleziona tutto
  If (Not rngTo Is Nothing) And (Err.Number = 0) Then
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Copia e incolla in Excel 2010

Postdi scossa » 23/10/12 13:44

gimart ha scritto:Scossa, funziona perfettamente :) . Una cosa però non ho capito: finchè io debbo copiare le celle selezionate in altra zona dello stesso foglio, va tutto bene: nella finestra "Destinazione" digito il nome della cella origine e la copia viene effettuata perfettamente. Ma come faccio se la copia (ed è il caso più frequente per me) deve essere fatta su un altro foglio o, addirittura, su un altro file?


Non serve scrivere, basta che selezioni col mouse la cella (o il foglio e la cella) di destinazione.
Però, utilizzando Application.Inputbox questa macro funziona solo sul file attivo.

Puoi sembre cambiare il codice per impostare rngTo.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Copia e incolla in Excel 2010

Postdi gimart » 23/10/12 16:27

scossa ha scritto:Però, utilizzando Application.Inputbox questa macro funziona solo sul file attivo.

Puoi sembre cambiare il codice per impostare rngTo.


No, Scossa, ho trovato la soluzione, perlomeno su file diversi: basta visualizzare sia il file origine che quello destinazione e, quando appare l'Inputbox, cliccare due volte sulla casella interessata del file destinazione (il primo clic serve ad attivare il foglio). Il problema rimane solo se si tratta di due fogli diversi dello stesso file in quanto non mi risulta che possano essere visualizzati insieme sul monitor. Se ti viene qualche idea.... :)
gimart
Win 10 and Office 2010
Avatar utente
gimart
Utente Senior
 
Post: 720
Iscritto il: 21/02/10 12:09

Re: Copia e incolla in Excel 2010

Postdi scossa » 23/10/12 17:05

gimart ha scritto:Il problema rimane solo se si tratta di due fogli diversi dello stesso file in quanto non mi risulta che possano essere visualizzati insieme sul monitor. Se ti viene qualche idea.... :)


Sullo stesso file il problema non si pone, basta che fai la correzione che ho indicato nel post sopra di errata-corrige.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Copia e incolla in Excel 2010

Postdi gimart » 23/10/12 17:20

Evviva, risolto anche il problema dei due fogli diversi dello stesso file: selezionare la zona da copiare e lanciare la macro. Doppio clic sul nome del foglio destinazione nella barra in basso a sinistra di Excel. Nell'Inputbox dovrebbe comparire =Nome foglio! (se non compare così, correggere). Aggiungere il nome della cella e nell'Inputbox si leggerà: =Nome foglio!$A$1. Clic su ok e la copia sarà effettuata.
gimart
Win 10 and Office 2010
Avatar utente
gimart
Utente Senior
 
Post: 720
Iscritto il: 21/02/10 12:09

Re: Copia e incolla in Excel 2010

Postdi Flash30005 » 23/10/12 23:18

Cmplimenti a Scossa per la macro postata

Se Gimart utilizza il foglio per digitare dati (singole celle) e seleziona un range solo per copiare potrebbe tornare utile far avviare la macro di Scossa con questo codice da inserire nel vba del foglio (o dei fogli)
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If (Selection.Rows.Count + Selection.Columns.Count) < 3 Then Exit Sub
Risp = MsgBox(Prompt:="Vuoi copiare le celle?", Buttons:=vbYesNo)
If Risp = 6 Then
Application.EnableEvents = False
CopiaTutto
Application.EnableEvents = True
End If
End Sub


Oppure se questa operazione la vuoi effettuare su tutti i fogli
puoi inserire in Thisworkbook questo codice (eviti di inserire il codice in ogni foglio)
Codice: Seleziona tutto
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If (Selection.Rows.Count + Selection.Columns.Count) < 3 Then Exit Sub
Risp = MsgBox(Prompt:="Vuoi copiare le celle?", Buttons:=vbYesNo)
If Risp = 6 Then
Application.EnableEvents = False
CopiaTutto
Application.EnableEvents = True
End If
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Copia e incolla in Excel 2010

Postdi gimart » 24/10/12 05:58

Flash30005 ha scritto:Cmplimenti a Scossa per la macro postata

Se Gimart utilizza il foglio per digitare dati (singole celle) e seleziona un range solo per copiare potrebbe tornare utile far avviare la macro di Scossa con questo codice da inserire nel vba del foglio (o dei fogli)
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If (Selection.Rows.Count + Selection.Columns.Count) < 3 Then Exit Sub
Risp = MsgBox(Prompt:="Vuoi copiare le celle?", Buttons:=vbYesNo)
If Risp = 6 Then
Application.EnableEvents = False
CopiaTutto
Application.EnableEvents = True
End If
End Sub


Oppure se questa operazione la vuoi effettuare su tutti i fogli
puoi inserire in Thisworkbook questo codice (eviti di inserire il codice in ogni foglio)
Codice: Seleziona tutto
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If (Selection.Rows.Count + Selection.Columns.Count) < 3 Then Exit Sub
Risp = MsgBox(Prompt:="Vuoi copiare le celle?", Buttons:=vbYesNo)
If Risp = 6 Then
Application.EnableEvents = False
CopiaTutto
Application.EnableEvents = True
End If
End Sub


Ciao

Flash, scusami, non ho capito bene cosa fa questa funzione. L'ho detto che sono un ciuccio in VBA :( . Potresti, per piacere, spiegarmi un pò meglio? Io, la splendida macro di Scossa l'ho inserita in Personal.xlsb e l'ho abbinata ad un pulsante posto, con le mie macro, sulla barra multifunzione. Va alla grande. Che succederebbe con quello che suggerisci? Grazie.
gimart
Win 10 and Office 2010
Avatar utente
gimart
Utente Senior
 
Post: 720
Iscritto il: 21/02/10 12:09

Re: Copia e incolla in Excel 2010

Postdi gimart » 24/10/12 06:59

Voglio ancora congratularmi con Scossa. Ho scoperto che, se nella zona selezionata per la copia è inserita un'immagine, anche questa viene incollata. Veramente eccellente!
gimart
Win 10 and Office 2010
Avatar utente
gimart
Utente Senior
 
Post: 720
Iscritto il: 21/02/10 12:09

Re: Copia e incolla in Excel 2010

Postdi Flash30005 » 24/10/12 08:24

La macro si attiverebbe ad ogni selezione di 2 o più celle
ovvero apparirebbe un messaggio che informa se copiare o no
perché, chiaramente, la selezione di più celle la si può fare anche per altre esigenze
Proprio per questo dicevo che era utile se la funzione principale della selezione è il copia/incolla.
Per utilizzarla dovrai inserire il codice non in Personal.xlsb ma nel vba di Thisworkbook (vedi tra gli oggetti nel frame di sinistra della videata del vbs: editor vba)

ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Copia e incolla in Excel 2010":


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti