chris6999
XLDnaute Impliqué
Bonjour le FORUM
Il ya quelques mois une bonne âme du FORUM m'avait donné un code pour réaliser une rechercheV sur une plage non vide que j'avais gardée précieusement dans ma boite à outil Excel.
J'ai essayé de reprendre cette macro sur un cas différent mais je me heurte à quelques petits soucis qui bloquent mon projet.
Ce que j'attends :
Sur toutes lignes à partir de la ligne 6 où I non vide
Dans ma feuille Données brutes agents j'essaye de remplir les colonnes J, K,L, M : rechercheV à partir du critère qui se trouve dans I vers la feuille BD où le même critère se situe dans la colonne A.
Les valeurs renvoyées sont celles des colonnes suivantes (colonne B, C, D, E).
Mon code adapté est le suivant :
Public Sub Transfert()
Sheets("Données brutes agents").Select
num = Cells.Find("*", , , , , xlPrevious).Row
'opérations à réaliser à partir de la ligne 6
For i = 6 To num
'le critère de référence est dans la 3ème colonne
valeur = Cells(i, 9)
Dim d As Variant
'le critèe commun dans la BD est dans la colonne K
d = Application.Match(valeur, Sheets("BD").Range("A:A"), 0)
'Met dans la colonne 10 (H) la valeur de la BD colonne 3 (C)
Cells(i, 10) = Sheets("BD").Cells(d, 3)
'Met dans la colonne 9 (I) la valeur de la BD colonne 4 (D)
Cells(i, 11) = Sheets("BD").Cells(d, 4)
Cells(i, 12) = Sheets("BD").Cells(d, 5)
Cells(i, 13) = Sheets("BD").Cells(d, 6)
Next i
End Sub
Ce qui coince :
Lorsque la valeur recherchée n'existe pas dans BD j'ai une erreur d'exécution de type 13 (voir ce qui se passe dans la ligne 18 de mon fichier joint).
Je ne sais pas trop quoi faire pour éviter ce blocage je souhaiterais peut-être que dans ce cas précis renvoyer vers la notion "INCONNU".
En dehors de ce bug des lenteurs d'exécution:
Lorsque toutes les valeurs sont connues dans BD mon tableau se remplit mais très très lentement (le code semble tourner dans le vide). En fait j'ai environs 6000 lignes à traiter sans jamais savoir le nombre exact.
Dans mon fichier joint je me suis limitée à 1000 lignes.
Peut-être est-ce normal ?
Je mets un fichier en PJ qui en dira plus que de longs discours.
Si quelqu'un a une solution je suis preneuse.
Bon dimanche à tous
Cordialement
Il ya quelques mois une bonne âme du FORUM m'avait donné un code pour réaliser une rechercheV sur une plage non vide que j'avais gardée précieusement dans ma boite à outil Excel.
J'ai essayé de reprendre cette macro sur un cas différent mais je me heurte à quelques petits soucis qui bloquent mon projet.
Ce que j'attends :
Sur toutes lignes à partir de la ligne 6 où I non vide
Dans ma feuille Données brutes agents j'essaye de remplir les colonnes J, K,L, M : rechercheV à partir du critère qui se trouve dans I vers la feuille BD où le même critère se situe dans la colonne A.
Les valeurs renvoyées sont celles des colonnes suivantes (colonne B, C, D, E).
Mon code adapté est le suivant :
Public Sub Transfert()
Sheets("Données brutes agents").Select
num = Cells.Find("*", , , , , xlPrevious).Row
'opérations à réaliser à partir de la ligne 6
For i = 6 To num
'le critère de référence est dans la 3ème colonne
valeur = Cells(i, 9)
Dim d As Variant
'le critèe commun dans la BD est dans la colonne K
d = Application.Match(valeur, Sheets("BD").Range("A:A"), 0)
'Met dans la colonne 10 (H) la valeur de la BD colonne 3 (C)
Cells(i, 10) = Sheets("BD").Cells(d, 3)
'Met dans la colonne 9 (I) la valeur de la BD colonne 4 (D)
Cells(i, 11) = Sheets("BD").Cells(d, 4)
Cells(i, 12) = Sheets("BD").Cells(d, 5)
Cells(i, 13) = Sheets("BD").Cells(d, 6)
Next i
End Sub
Ce qui coince :
Lorsque la valeur recherchée n'existe pas dans BD j'ai une erreur d'exécution de type 13 (voir ce qui se passe dans la ligne 18 de mon fichier joint).
Je ne sais pas trop quoi faire pour éviter ce blocage je souhaiterais peut-être que dans ce cas précis renvoyer vers la notion "INCONNU".
En dehors de ce bug des lenteurs d'exécution:
Lorsque toutes les valeurs sont connues dans BD mon tableau se remplit mais très très lentement (le code semble tourner dans le vide). En fait j'ai environs 6000 lignes à traiter sans jamais savoir le nombre exact.
Dans mon fichier joint je me suis limitée à 1000 lignes.
Peut-être est-ce normal ?
Je mets un fichier en PJ qui en dira plus que de longs discours.
Si quelqu'un a une solution je suis preneuse.
Bon dimanche à tous
Cordialement