Je cherche à rapatrier plusieurs informations d'une BDD, sur un nouvel onglet du même fichier excel.
Je dois donc utiliser la recherche V.
La problématique est que pour ma valeur cherchée (seule clé d'entrée communes entre les différents fichier) correspond à 5/6 ou 7 lignes dans la BDD. Lorsque je l'effectue naturellement elle me rapatrie qu'une seule ligne or je voudrais l'ensemble des lignes dans les colonnes que j'ai prévu à cet effet.
J'aimerais que les informations recherchés dans la BDD apparaissent de la plus récente à la plus ancienne.
(Ex : C&D : 2018 ; E&F 2017...)
Vous allez certainement me dire de faire simplement un TCD mais cela n'est pas possible car je veux faire une macro ensuite.
Je vous joins le fichier, dans le premier onglet se trouve la BDD, dans le second, les informations que je voudrais rapatrier (je viens enrichir la colonne A en faisant un copié/collé d'un fichier extérieur)
J'ai essayé les deux façons que vous avez proposés, elles me renvoient toutes deux des messages d'erreur que je n'arrive pas à corriger (que c'est étonnant) :
J'imagine qu'il doit manquer des éléments sur la seconde tentative ?
Bonjour.
"Impossible d'exécuter le code en mode arrêt" se produit par exemple si un Application.OnTime arrive à échéance alors que la procédure est arrêtée sur une instruction. Ça n'a pas de rapport avec la cause de l'arrêt.
J'ignore s'il y a une erreur. Existe-t-il bien une feuille "BdD" dans le classeur actif ?
Par ailleurs ça devrait être une plage de plusieurs lignes. Vous pourriez utiliser la fonction ColUti :
TEAN = ColUti(ActiveWorkbook.Worksheets("BdD").[A2:CY2]).Value ou encore :
TEAN = ColUti(Workbooks("ABC.xlsx").Worksheets("XYZ").[A2:CY2]).Value ou encore :
TEAN = ColUti(ActiveSheet.[A2:CY2]).Value ça dépend du contexte.
Pourquoi vous obstinez vous à faire n'importe quoi ?
Je dirais :
VB:
TEAN = ColUti(Worksheets("Attendu").[A2]).Value
…
For Each EAN In Gigogne(Workseets("BdD").[A2:CY2], 1, -3, Null, 4)
…
Worksheets("Attendu").[C1].Resize(20000, 15).Value = TRés