Saltar al contenido

Averiguar última Celda con valor "C" cuando en la columna, varias celdas contienen ése mismo valor.


Recommended Posts

publicado

Buenas tardes!

A ver si alguien sabe ayudarme... ?

Si tenemos una columna, cuyas celdas siempre contienen "C" o "D",  ¿cómo puedo localizar la última "C" de la columna? Si:

- La última "C" no tiene por qué coincidir con la última fila.

- No podemos saber cuántas filas, ni cuántas "C" o "D" habrá.

Es decir, que hay que evaluar todas las celdas de una columna, cuyo número de filas es desconocido y seleccionar la celda cuyo valor sea C y no haya más celdas después con C, aunque sí puede haber anteriores celdas con ese mismo valor.

Gracias! 

publicado

Suponiendo que tus datos están en la columna A:

With Columns("A") 'Columna con los datos
   .Find("C", .End(xlDown), , xlWhole, , xlPrevious).Select
End With

 

publicado

En realidad no hay ningún patrón ni orden... Habrá C y D mezcladas, desordenadas y no hay que modificar su posición.. Pero gracias, igualmente. 

publicado
Hace 24 minutos , Enid86 dijo:

En realidad no hay ningún patrón ni orden... Habrá C y D mezcladas, desordenadas y no hay que modificar su posición.. Pero gracias, igualmente. 

Pero el aporte de @Antoni, hace lo que necesitas y no mencionas nada al respecto

 

Saludos 

publicado

Hola @Enid86

El código del Maestro Antoni efectúa lo que necesitas.
Suerte!

 

Sub encontrar_letra()
With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
End With

ccol = Hoja1.Cells(3, 2).Value
ufila01 = 0: ufila01 = Hoja1.Cells(Rows.Count, ccol).End(xlUp).Row
ctexto = Hoja1.Cells(4, 2)

With Columns(ccol)
   .Find(ctexto, .End(Down), , xlWhole, , xlPrevious).Select
End With
MsgBox "La última celda con valor: " & ctexto & " es la celda: " & ActiveCell.Address

With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
End With
End Sub

ae20200503_post43338_encontrar letra.xlsm

publicado

Hola  Enid86, como bien dice el Maestro  Gerson Pineda, el aporte del Maestro  Antoni   Antoni  resuelve perfectamente su solicitud, me la impresión de que no te has dado cuenta de su propuesta, te muestro un ejemplo de su código para que veas que verdaderamente cumple con lo solicitado.

GIF1.gif

publicado

Buenas!

Porque el de Antoni todavía no me había dado tiempo a probarlo! He estado un poco desconectada, pero ya lo estoy retomando..
A ver qué cositas interesantes me habéis dejado por aquiiiií..... ?

publicado

MUCHAS GRACIAS, ANTONI! ?

Perdona que haya tardado tanto en revisar la respuesta, es que estuve muy entretenida con el torneo de Carlsen Invitational.. ?

Parece que me funciona perfectamente, solo omití el .Select, porque lo quería para almacenar el rango en una variable.

Ya cuando termine con todo este proyecto lo subiré completo, para que cotilleéis si os apetece...

Gracias porque siempre estás al pie del cañón... ??

En 3/5/2020 at 17:34 , Antoni dijo:

Suponiendo que tus datos están en la columna A:


With Columns("A") 'Columna con los datos
   .Find("C", .End(xlDown), , xlWhole, , xlPrevious).Select
End With

 

Buen domingo!

 

 

 

 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.