Bonjour à tous

ci joint un petit programme fait dans le but de copier certaines plages de cellules vers une autre feuille en incrementant les donnees qui viennent de plusieurs fichiers.
1) j'ai réussi de cette maniere car ca ne marche pas avec Range. pourquoi???
Notamment, quand il y a une date il met un message d'erreur.

2) ces données viennent de fichiers csv divers.(carnet de saisie sur le terrain.)

Est il possible de faire la manip en sélectionnant le fichier et lancer le programme sans les copiers dans la feuille "Feuil1"??

Merci de votre aide

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
 
Sub base()
Dim i As Long
Dim j As Long
'Initialisation du n° de ligne à copier
i = 2
 
'recherche de la derniere ligne renseignée de la "BD"
DerLig2 = Sheets("BD").Range("A" & Sheets("BD").Rows.Count).End(xlUp).Row
'Détermination de la ligne de "BD" où est effectuée la copie
j = DerLig2 + i - 1
While Sheets("Feuil1").Cells(i, 1) <> ""
    Sheets("BD").Cells(j, 1) = j - 1
    Sheets("BD").Cells(j, 2) = Sheets("Feuil1").Cells(i, 2)
    Sheets("BD").Cells(j, 3) = Sheets("Feuil1").Cells(i, 3)
    Sheets("BD").Cells(j, 4) = Sheets("Feuil1").Cells(i, 4)
    Sheets("BD").Cells(j, 5) = Sheets("Feuil1").Cells(i, 6)
    Sheets("BD").Cells(j, 6) = Sheets("Feuil1").Cells(i, 7)
    Sheets("BD").Cells(j, 7) = Sheets("Feuil1").Cells(i, 8)
    Sheets("BD").Cells(j, 8) = Sheets("Feuil1").Cells(i, 9)
    Sheets("BD").Cells(j, 9) = Sheets("Feuil1").Cells(i, 10)
    Sheets("BD").Cells(j, 10) = Sheets("Feuil1").Cells(i, 11)
    Sheets("BD").Cells(j, 11) = Sheets("Feuil1").Cells(i, 12)
    Sheets("BD").Cells(j, 12) = Sheets("Feuil1").Cells(i, 13)
    Sheets("BD").Cells(j, 13) = Sheets("Feuil1").Cells(i, 14)
    Sheets("BD").Cells(j, 14) = Sheets("Feuil1").Cells(i, 15)
    Sheets("BD").Cells(j, 15) = Sheets("Feuil1").Cells(i, 16)
    Sheets("BD").Cells(j, 16) = Sheets("Feuil1").Cells(i, 17)
    Sheets("BD").Cells(j, 17) = Sheets("Feuil1").Cells(i, 18)
    Sheets("Feuil1").Cells(i, 19).Copy
    Sheets("BD").Select
    Cells(j, 18).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
i = i + 1
j = j + 1
Wend
End Sub