Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
...
nel mio esempio,
per ogni riga (ID) trovata, le celle di col2, col3 e col5 di foglio2 vanno copiate in foglio1 col2, col3 e col5 :)
...
Ciao Carlo,
la macro inizia la copia dalla riga 2, presupponendo che la prima riga contenga l'intestazione, se, invece, vuoi iniziare dalla prima, modifica la riga evidenziata mettendo A1.
Andrea.
Public Sub copiaCelleTraFogli()
Dim wsSource As Worksheet, wsTarget As Worksheet
Dim rSource As Range, rTarget As Range, rFind As Range, rCell As Range
Dim lLastRow As Long
'---------- personalizza nome fogli di lavoro
With ThisWorkbook
Set wsSource = Worksheets("Foglio2")
Set wsTarget = Worksheets("Foglio1")
End With
'---------- indice ricerca
lLastRow = wsSource.Cells(Rows.Count, "A").End(xlUp).Row
Set rSource = wsSource.Range("A2:A" & lLastRow)
For Each rCell In rSource
'---------- cerca nel foglio destinazione
Set rFind = wsTarget.Columns(1).Find(rCell.Value)
If Not rFind Is Nothing Then
'---------- copia celle
Set rSource = wsSource.Range("B" & rCell.Row & ":C" & rCell.Row)
Set rTarget = wsTarget.Range("B" & rFind.Row & ":C" & rFind.Row)
rSource.Copy rTarget
Set rSource = wsSource.Range("E" & rCell.Row)
Set rTarget = wsTarget.Range("E" & rFind.Row)
rSource.Copy rTarget
Else
MsgBox "Attenzione: " & rCell.Value & " non trovato!", vbCritical + vbOKOnly
End If
Next
'---------- cleanup
Set wsSource = Nothing: Set wsTarget = Nothing
Set rSource = Nothing: Set rTarget = Nothing
Set rFind = Nothing: Set rCell = Nothing
End Sub