Bonjour,

Je vous explique mon problème :
J'ai une feuille ("BDD") où j'aimerais regrouper les informations de 3 autres feuilles du même classeur.

Deux de mes feuille ont une colonne A nommé "identifiant" où il y a des nombres qui ne sont pas dans le même ordre pour ces deux feuilles et où ma feuille "conf" dispose de plus d'informations que ma feuille "ON". "Conf" a 10000 lignes d'identifiant et "ON" en a 500.
Un identifiant n'est pas unique dans là feuille "Conf".

Ma feuille "Conf" dispose de 3 colonnes, j'aimerais récupérer ces informations dans "BDD", j ai donc fais un code qui semble fonctionner.
Un identifiant ne peut avoir qu'une seule fois le même "BP", informations se trouvant colonne 2 de "Conf".
La troisième colonne se nomme "confir".

Dans ma feuille "ON" j'aimerais récupérer les informations des colonnes M (groupe) et N (car) en fonction de ma colonne A (identifiant qui pour ma feuille "ON" est unique).
Dans ma troisième feuille "txt" je retrouve en colonne b "groupe" en colonne c "car" et en colonne d "BP".
En colonne E je dois récupérer les informations pour les mettre dans "BDD" en fonction de "groupe" "car" et "BP"

J'ai fais un code qui copie tout les champs de la feuille Conf correctement mais après elle ne copie pas les valeurs de la feuille ON, de plus elle me met l'erreur "Erreur définie par l'application ou par l'objet"

Je vous joint 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
Dim k As long
Dim j As long
Dim i As long
 
for i = 2 to 10000
 
Sheets("BDD").Cells(i, 1).Value = Sheets("Conf").Cells(i, 1).Value
 
Sheets("BDD").cells(i, 2).Value = Sheets("Conf").Cells(i,  2).Value
 
Sheets("BDD").Cells(i, 3).Value = Sheets("Conf").Cells(i, 3).Value 
 
next i
 
For j = 1 to 8100
k = 2
 
Do while Sheets("BDD").Cells(j, 1).Value <> ""
 
If Sheets("BDD").Cells(j, 1).Value = Sheets("ON").Cells(k, 1).Value Then
 
Sheets("BDD").Cells(j, 4).Value = Sheets("ON").Cells(k, 13).Value
Sheets("BDD").Cells(j, 5).Value = Sheets("ON").Cells(k, 14).Value
 
ElseIf Sheets("BDD").Cells(j, 1).Value <> Sheets("ON").Cells(k, 1).Value Then
 
k = k + 1
j = j - 1
 
End if
 
Loop
next j
Merci pour votre aide.