Jelly, 2222 21 bytes
DS=³a³ḍaDṫ³DLC¤Ḍ=³
Ç1#DS=³a³ḍaDṫ³DLC¤Ḍ=³ø1#
Edit: compressed to a single line
Explanation
Ç1# Main Link
DS=³a³ḍaDṫ³DLC¤Ḍ=³ø1#
Ç Calls first link as a monad
1# ø1# Evaluate the condition Countbefore upthis and stop when you get first match
First Link:
DS=³a³ḍaDṫ³DLC¤Ḍ=³ increment a counter until Thisit is whatmet Çthen calls
output the counter
D Digits of incremented variable as a list
S Sum
=³ Equals argument of program?
a Logical and
³ḍ Does arg divide incremented variable?
a Logical and
Dṫ Ḍ Last n digits of inc. var. where n is number of digits in program input
³DLC 1 - (number of digits of program input)
¤ Book ends above nilad
=³ Equals program input?
When all three conditionals in the first link are met the loop ends and outputs which iteration number it is.
This took me many hours to write because I'm learning Jelly but now that I'm done I'm so satisfied. For a long time I didn't realize I needed the ¤
and I just couldn't get it to work. Looking at this[this][1] well explained code helped me seal the deal. Lots of other Jelly answers in PPCG guided me too.