Althera2004_FirstFree

Buscar la posición de la primera celda vacía en un rango de Excel

 

Fecha: 27/Jun/2005 (23/06/2005)
Autor: Juan Castilla Calderón (althera2004@gmail.com, juan@cesi.info)  

 


Todos sabemos (o casi todos...) que Excel nos proporciona un montón de funciones precocinadas para trabajar con los datos en sus hojas. Pero a veces, más de las que podais llegar a pensar, necesitamos concatenar funciones como parámetros de funciones. Esto no debería ser ningún problema para algien que "sabe" programar.

El problema aparece cuando estas "superfunciones" empiezan a semejarse a la versión Excel del Quijote (fomentando el año Quijote), y sin llegar a remediarlo se empiezan a usar celdas que sirven de cálculos intermedios que serán usados en funciones posteriores.

Con VBA, podemos crear nuestras propias funciones a medida con lo cual nos suponen varios beneficios:

Esta función en concreto, la primera de una seria que espero cmpartir con vosotros y os sea útil, sencillamente busca la posición de la primera celda libe en el rango que recibe como parámetro.

Sin más dilación aquí va el meollo del asunto. Al final de todo os podeis bajar el ficheo que contiene el .xls en cuestion.

Function PLibre(cell As Range) As Integer
Dim cont As Integer
cont = 1
seguir = True ' cell.count guarda el total de celdas que contiene el rango
While cell.Cells(cont).Value2 = "" and cont <= cell.count
cont = cont + 1
Wend ' Si resulta que cont es mayor a número de celdas al terminar el bucle ' significa que no había ninguna vacía con lo cual devolvemos un -1 If cont > cell.count then cont=-1
PLibre = cont
End Function

Esta función sigue la filosofía de funciones como =coincidir() que nos devuleva la posición del objeto encontrado y no el valor del mismo


 


Fichero con el código de ejemplo: althera_firstfree.zip - 10 KB


ir al índice