I'm not sure exactly what you want because
1. DEC2HEX not only doesn't handle negative numbers, it also doesn't know about floating point.
2. In your example -0.0168 may translate to BC89A027 as a 4-byte floating point number, but Excel numeric cell values are stored as 8-byte IEEE floating point numbers (the same as the VBA Double data type).
If you want to convert from decimal to hex, including the fractional part (example -0.0168 decimal = -0.044D013A hex) I have a user-defined function I can provide you to to this (let me know).
But if you really want the internal floating point bit string represented in hex, this is a bit trickier. The only solution I know involves the use of a custom DLL function.