1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| Dim Tableau(1 To 10, 1 To 2)
Dim I As Integer
Sub Worksheet_change(ByVal Target As Range)
'On déclare la variable ligneModif
Dim ligneModif As Long
'Si on modifie une cellule de la colonne 'C' (N° 3)
If Target.Column = 3 Then
'On récupère le numéro de ligne de la cellule modifiée
ligneModif = Target.Row
I = I + 1
'Si il y a plus de 10 cellules de remplies
If I > 5 Then
If MsgBox("La limite du tableau a été atteinte, écraser les valeurs les plus anciennes ?", vbYesNo) = vbYes Then
I = 1
Else
Exit Sub
End If
End If
'On met les données de la ligne modifiée dans le tableau
Tableau(I, 1) = Range("A" & ligneModif).Value
Tableau(I, 2) = Range("C" & ligneModif).Value
I = I + 1
End If
End Sub
Sub BoutonClic()
Dim I As Integer
'On ouvre le fichier dans lequel on veut coller les données copiées
Workbooks.Open ThisWorkbook.Path & "\Fichier1.xls"
'On restitue les données dans la feuille excel
For I = 1 To UBound(Tableau, 1)
With Sheets("Feuil1").UsedRange: NoDeLaDernLig = .Cells(.Rows.Count, .Columns.Count).Row: End With
Sheets("Feuil1").Cells(NoDeLaDernLig + 1, 4).Value = Tableau(I, 1)
Sheets("Feuil1").Cells(NoDeLaDernLig + 1, 2).Value = Tableau(I, 2)
I = I + 1
Next I
Erase Tableau()
End Sub |
Partager