Über MS-Query kannst du in den Kriterien Parameter definieren (im SQL-Modus mit "?").
Bei der Ausführung fragt MS-Query nach den Werten.
Gib die Abfrage dann ruhig an Excel zurück.
Über die Abfrage-Eigenschaften kannst du dann den Parametern dann gezielt einzelne Zellen zuweisen, so dass bei Änderung der Zelle die Abfrage ausgeführt wird.

Nachteil:
Du kannst einen Parameter nur 1 Zelle zuweisen !
Wenn du also mehrere Zellen hast, in die die Artikel-Nr. eingegeben werden kann, benötigst du für jede Zelle eine eigene Abfrage.

Besser wäre es, hier eine allgemeine Funktion (VBA-Modul) zu schreiben, der du die Artikel-Nr. (als Zelle) übergibst und den Preis mittels Abfrage (ADO) selber abfragst.
Das Recordset kann statisch geöffnet bleiben, ein Command-Objekt mit Parameter zuordnen und dann jeweils mittels Refresh die Abfrage wiederholen.