link95 link96 link97 link98 link99 link100 link101 link102 link103 link104 link105 link106 link107 link108 link109 link110 link111 link112 link113 link114 link115 link116 link117 link118 link119 link120 link121 link122 link123 link124 link125 link126 link127 link128 link129 link130 link131 link132 link133 link134 link135 link136 link137 link138 link139 link140 link141 link142 link143 link144 link145 link146 link147 link148 link149 link150 link151 link152 link153 link154 link155 link156 link157 link158 link159 link160 link161 link162 link163 link164 link165 link166 link167 link168 link169 link170 link171 link172 link173 link174 link175 link176 link177 link178 link179 link180 link181 link182 link183 link184 link185 link186 link187 link188 link189

Buscar una columna por su nombre y saber su última fila con datos

Vamos a ver cómo buscar una columna por su nombre y, a continuación, saber cual es su última fila con datos. Es un paso más de lo tratado en la Lección 15: Buscar un valor en una columna Excel (Find) que me habéis pedido en los comentarios.

He creado una tabla con un encabezado formado por profesiones comunes y una serie de datos como la de la figura,

enviar-pedidos-proveedores-por-email-excel
El funcionamiento es muy simple. Rellenamos el campo "Profesión" y pulsamos el botón para que, automáticamente, el programa nos indique la columna correspondiente, junto con la última fila que dispone de datos.

Os comparto el código que se esconde detrás del botón,

Sub Buscar()

'Si está vacío el campo Profesión, mostramos mensaje de error y salimos de la macro

If IsEmpty(Cells(3, "B")) Then

MsgBox "Es necesario rellenar la profesión"
Exit Sub

End If

'Guardamos la profesion introducida en B3 en la variable profesion

profesion = Cells(3, "B").Value

'Buscamos la profesion en la sexta fila

Set dato = Range("A6:AA6").Find(profesion, LookIn:=xlValues, LookAt:=xlWhole)

'Si no se ha encontrado en la lista, mostramos aviso

If dato Is Nothing Then

MsgBox "Profesión no contemplada en la lista"

Else

'En caso contrario, guardamos el valor de la columna y buscamos la última fila con datos de esa columna

columna = dato.Column
fila = Cells(Rows.Count, columna).End(xlUp).Offset(0, 0).Row

'La seleccionamos para visualizarla mejor

Cells(fila, columna).Select

'Finalmente, mostramos en una ventana de texto el valor de la fila y columna

MsgBox "Columna: " & columna & " Fila: " & fila

End If

End Sub

Si, por ejemplo, elegimos la profesión "Fontanero",
enviar-pedidos-proveedores-por-email-excel
Nos indica que su columna es la número 5 y que la última fila con datos es la 10.

Para el caso de la profesión "Peluquero",

enviar-pedidos-proveedores-por-email-excel

Su columna es la número 8 y la última fila con datos la 13.

Espero que te sirva este ejemplo para buscar una columna por su nombre y saber su última fila con datos. Descarga el archivo de ejemplo y practica.

Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.

Hasta la próxima.

Descarga el archivo del ejemplo

2 Comentarios

  1. Excelente ejemplo, ya que las distintas profesiones no tienen por que tener el mismo número de filas, gracias por compartir.

    • Gracias Oscar,

      Para cualquier cosa, por aquí estamos.

      Saludos.

Últimas publicaciones

Categorías