Bonjour à tous,
Je débute dans la programmation VBA et je m'expose à quelques problèmes
Je vous expose mon problème :
Je dois récupérer sur un fichier externe à mon classeur, les données le contenant. J'extrais ces données dans ma feuille "Extraction". Ma feuille "Extraction" ne me sert que d'emplacement de stockage provisoire.
Dans une autre feuille "Base de donnée" je dois récupérer les données stockées dans "Extraction".
Pour cela je traite les doublons en supprimant les numéros double (qui sont unique à chaque ligne)
Je supprimes la première ligne qui me sert à rien
Et j'aimerai copier les lignes qu'il me reste(de ma feuille "Extraction"), à la première ligne vide (dans "Base de donnée")
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub Copie_en_interne() 'Désactive la mise à jour de l'affichage Application.ScreenUpdating = False '***************************' '*Debut de la vérification du numéro*' '***************************' Dim i As Integer Dim BDD As Range 'Base de donnée = BDD 'Definition plage de cellules en memoire pour vitesse execution Set BDD = Worksheets("Base de donnée").Range("B1:B200000") With ThisWorkbook.Sheets("Extraction") For i = 200 To 2 Step -1 'Vérifie les numéros dans l'extration par rapport à la base de donnée If Application.CountIf(BDD, .Range("B" & i).Value) <> 0 Then 'Supprime les numéros doublons .Rows(i).Delete End If Next i End With '*************************' '*Fin de la vérification du numéro*' '*************************' '******************************' '*Début des copies des données*' '******************************' Sheets("Extraction").Select 'on supprime la première ligne avec les titres Rows("1:1").Select Selection.Delete Shift:=xlUp 'on copie toutes les colonnes Columns("A:P").Select Selection.Copy 'On colle les données dans la base de donnée Sheets("Base de donnée").Select Columns("A:P").Select ActiveSheet.Paste '****************************' '*Fin des copies des données*' '****************************' End Sub
Pour le moment je copie depuis la première ligne.
J'ai essayé de copier à partir de la cellule que j'ai pré-sélectionné, mais cela ne fonctionne pas
Je suis sur que mon erreur est trop bête mais j'en appelle à vos expériences pour m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 'détermine la dernière ligne active der_ligne = Range("A1").End(xlDown).Row + 1 MsgBox der_ligne Cells(der_ligne, 1).Select ActiveCell.Paste
Je vous en remercie d'avance
TintinU2
Partager