Como la pregunta es directa para mi te pregunto algo que es un "rulo" yo no lo se. Al grano ese codigo tiene pinta de grabadora de macros, pero vamos a intentar ayudarte; si tu dices que con ese codigo colocas al valor seleccionado de un cuadro de lista en la celda A9 asi a lo rapido!! no se te ocurre como que utilizar la primera celda vacia despues de A9 para el nuevo dato, esto quiere decir que con un While se podria realizar, puedes utilizar el buscador del foro escribiendo mi nombre para que veas una de mis respuestas sobre encontrar la ultima celda con datos.
Ahora bien y aqui es donde viene lo del codigo hecho por la grabadora, no es una critica si no mas bien te lo recalco para que analices y veas la ayuda de VBA antes de hacer preguntas que son faciles de resolver, si a ese codigo que expones le quitas la primera linea y ademas cambias la segunda por esto:
Activeell.Value = ListBox1 quedandote asi
Private Sub ListBox1_Click()
Activeell.Value = ListBox1
End Sub
eso te funciona, aunque no del todo asi como lo mencionas pero funciona, ya que trabajaras sobre la celda activa y no sobre un rango fijo como lo hacias con el codigo que expones, es decir, si te solocas en A9 y das click en un valor del ListBox ese valor pasara a A9, y siguiendo con lo mismo te colocas ahora en A10 vas y seleccionas otro item del ListBox y se colocara en A10 y asi con la celda donde te coloques.
Ahora para hacerlo automatico ve a la ayuda de VBA y observa lo referente a este control hay que leer pero te servira para avanzar. ademas te recomiendo leer este link donde expongo dos cursos buenos para aprender desde cero
http://lawebdelprogramador.com/news/mostrar_new.php?id=127&texto=Excel&n1=361653&n2=1&n3=1&n4=1&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0