Jump to content
andres palacios

ANSWERED Localizar una misma cadena de texto dentro de una misma celda y extraer hora justo despues de esa cadena

Recommended Posts

Buenas compañeros,

Me enfrento a un problema de programación con VBA que parece complicado, a ver si me pueden echar una mano ya que he investigado y no encuentro la manera de hacerlo.

En la siguiente imagen, en la columna B están las "Acciones". Dentro de las celdas de esta columna hay texto con información relativa al trabajo realizado.

Mi intención es buscar todas las veces que se repite la cadena "Sub-task stamped" dentro de una misma celda  y extraer la fecha y hora que está en el renglón justo de  abajo.

En el Ejemplo de la imagen el resultado sería: 

    -Sub-task Stamped: 10-Mar-2020 21:20

    - Sub-task Stamped: 10-Mar-2020 19:03

nota: Podría haber filas como es la B3 en la que no aparece esta cadena de texto, en ese caso no hay que hacer nada

Adjunto archivo, para visualizar la situación

Les agradecería enormemente que me puedieran ayudar a resolver el problema compañeros

Muchas gracias de antemano

Un abrazo

Captura.JPG

extraertexto.xlsm

Share this post


Link to post
Share on other sites

Prueba con esta macro:

Sub BuscarFechas()
Application.ScreenUpdating = False
For x = 2 To Range("B" & Rows.Count).End(xlUp).Row
   Range("B" & x).Select
   fechas = Split(Range("B" & x), "/* ")
   For f = 1 To UBound(fechas)
      ActiveCell.Offset(0, 1).Select
      ActiveCell = Left(fechas(f), 15)
   Next
Next
End Sub

 

Share this post


Link to post
Share on other sites

Buenas Antoni, en primer lugar muchisimas gracias por su aportación, es muy interesante!

Sin embargo, esta macro sólo extrae la última fecha dentro de la celda, y sin relacionarla con la cadena de texto " Sub-task stamped".

Me faltaría añadir alguna condición para localizar todas las veces que se repite  "Sub-task stamped" dentro de la celda y extraer la fecha de la forma que indica en su macro.

Es posible que haya celdas que no tengan la cadena  "Sub-task stamped" y no haya que extraer nada.

Un cordial saludo

Share this post


Link to post
Share on other sites

¡Hola, a todos!

Puedes probar con el siguiente código:

Sub ExtraeFechas()
  Dim i&, j&, cadenas, fecha$
  
  Application.ScreenUpdating = False
  For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
    cadenas = Split(Range("B" & i), "Sub-task stamped")
    If UBound(cadenas) Then
      For j = 1 To UBound(cadenas)
        fecha = Split(cadenas(j), "/*")(1)
        Range("C" & i).Offset(, j - 1) = Trim(Mid(fecha, 2, 18))
      Next j
    End If
  Next i
  
  Erase cadenas
  Application.ScreenUpdating = True
End Sub

¡Bendiciones!

Share this post


Link to post
Share on other sites

John Jairo  V fantastica solución, muy creativa... la macro hace exactamente lo que quiero!

Muchisimas gracias por su valiosa ayuda. Doy por resuelto el tema!

Antoni muchas gracias también a usted por su aportación y dedicación

Un abrazo

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




  • Posts

    • Hola buenas tardes amigos de Ayuda Excel Estoy parado en una macro que no he podido resolver a ver si pueden ayudarme. Gracias de antemano por su colaboración. Les explico. El archivo tiene varias hojas, Una se llama control enero, control febrero y asi sucesivamente La macro la voy a ejecutar en cada hoja Lo que debe hacer la macro es: 1)      copiar la celda A3, que es una formula, de la Hoja CONTROL 1  a la primera fila disponible de la columna A5 de la Hoja Control General. 2)      Copiar la celda j22 de Control 1 (que es una formula), como valor sin negrita a la primera fila disponible de F5 de la Hoja Control general. 3)      Hacer una botón para ejecutar la macro, teniendo en cuenta que solo debe ejecutarse si la celda j25 de la Hoja Control 1 es igual a SI. Por el contrario si es igual a NO, no debe permitir la ejecución de la macro. Pudiera ser advertido al usuario mediante un MSGBOX. 4)      Por último la posición de las celdas J22 y j25 pueden variar de hoja a hoja según la información introducida en cada hoja. Agradecidos de antemano por la colaboración prestada. LB Anexo archivo CONTROL GENERAL.xlsm
    • Un nuevo aporte para finalizar el proyecto Tengo el archivo funcionando cuando el usuario requiere solo una hoja activa. cuando se requiere que mas hojas estén activas no funciona. Ejemplo el user marco pass 123 debería tener activas las hojas "Registro, Registro1, Registro2". Con el codigo actual solo funciona la hoja "Registro" Ademas un favor extra que dependiendo el usuario que inicie sección ponga el Nombre de la columna "Nombre" en ("01.Adeudos" tabla "usuarios") del archivo en ACCESS y lo pegue en la hoja "Principal" celda C7 del archivo de EXCEL. en el siguiente enlace esta un ejemplo del proyecto. https://mega.nz/file/YRpRXZTL#Uynlq0oW77Eo0VbME26yYkKc1g7jXXu9w1AwfbFlRp0 De nuevo muchas gracias por toda la ayuda en el proyecto. Saludos
    • Hola buenas tardes amigos de Ayuda Excel. Quería preguntar si hay alguna manera de copiar y pegar una celda que tiene un prefijo en otra celda pero que el prefijo APAREZCA en la barra de fórmula. Gracias
    • Todo en la misma hoja.   Filtro Antoni.xlsm
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy