Me ha gustado tu pregunta y me he puesto manos a la obra para practicar en vb Te he creado una macro para excel cuyo contenido es el siguiente: Sub distancia() ' ' distancia Macro ' Macro grabada el 23/05/2003 por jperg ' ' Range("C15").Select[posicion desde la que cuento] Selection.End(xlUp).Select[el tipico end y flecha arriba] ActiveCell.Select[controla el nº de fila en el que se encuentra el dato] a = ActiveCell.Row[variable que recoge el nº de fila] While a <> 15[mientras la fila no sea desde la que partiamos] ActiveCell.Offset(1, 0).Range("A1").Select[baja filas de una en una] c = c + 1[cuenta cada fila que baja] Wend[devuelve el control] Range("C15").Select[cuando la condicion while llega a su fin,activa la celda desde la que partiamos al principio] ActiveCell.Value = c[y le da el valor del contador de filas] End Sub[fin] Los []son aclaraciones, no las incluyas Espero que te guste la solución, en excel no se de ninguna.
He tenido un lapsus despues de c = c + 1 pon a = a + 1 Para que el contador de filas sepa cuando parar NOTA (no se si controlas vb, por si no te diré que abras en vb el menu ver/ventanas locales y ejecuta la macro paso a paso desde vb y veras en la ventana local como van incrementando los valores) Un saludo de nuevo y perdona por el lapsus