Merci pour ton aide.
Je ne comprend pas le code suivant:
rngFrom.CurrentRegion.Copy rngTo
J'ai copié le code en changeant les noms de feuilles et les ranges mais je n'arrive pas à avoir ce que je veux.
En effet la taille des données à trier peut être amener à évoluer, pour cela que j'avais créer une fonction recherche pour trouver la dernière ligne et trier/copier uniquement les données dont j'avais besoin.
1 2 3 4 5 6 7 8 9 10 11 12
| Sub t()
Dim shtFrom As Worksheet, shtTo As Worksheet
Set shtFrom = Worksheets("MiseAJour")
Set shtTo = Worksheets("Données")
SupprimeDoublon shtFrom.Range("A1:A10000"), shtTo.Range("A2")
End Sub
Sub SupprimeDoublon(rngFrom As Range, rngTo As Range)
' Supression des doublons
rngFrom.RemoveDuplicates Columns:=Array(1), Header:=xlYes
'Copie des valeurs
rngFrom.CurrentRegion.Copy rngTo
End Sub |
J'ai retravaillé mon code, j'arrive à copier la selection que je veux mais je n'arrive pas à la coller sur l'autre feuille. Je n'ai que l'option pastespecial de disponible et non l'option paste. Rha j'y suis presque !!
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
|
Private Sub CommandButton1_Click()
Sheets("MiseAJour").Select
'Supression des doublons
ActiveSheet.Range("$A$4:$A$10000").RemoveDuplicates Columns:=Array(1), _
Header:=xlYes
'Copie des valeurs
Range("A4").Select
Ligne = 4
Do Until IsEmpty(Range("A" & Ligne))
Ligne = Ligne + 1
Loop
dernièreLigne = Ligne - 1
Range("A4:A" & dernièreLigne).Copy
'Ecriture dans la base de donnée
Sheets("Données").Select
Ligne = 2
Do Until IsEmpty(Range("A" & Ligne))
Ligne = Ligne + 1
Loop
Range("A" & Ligne).PasteSpecial
'Supression des doublons
ActiveSheet.Range("$A$2:$A$10000").RemoveDuplicates Columns:=Array(1), _
Header:=xlYes
End Sub |
Partager