Arrojar un carácter dentro de una celda con texto

Querido y confiable experto!
Me atrevo a recurrir a ti por que no puedo con este trabajo.
Tengo una celda la cual contiene los datos abajo mencionados de ahí necesito hacer una macro o saber la fórmula que me busque VOI y me arroje los tes caracteres siguientes en una celda ; así como que busque DATE y me arroje los 8 caracteres siguientes en otra celda.
                                              STATION COPY
                FLIGHT RELEASE        VOI441            DATE 15/08/09
Por tu amabilidad mil gracias!
Sandy
Respuesta
1
Vamos a ver hay que pasar el texto a una variable y cuando encuentre VOI que extraiga los 3 siguientes caracteres a la celda que necesitas, y cuando encuentre DATE que extraiga los 8 caracteres a la otra celda. Hasta ahí todo correcto, perooooooo:
1º En todas las celdas existe la palabra VOI(3 caracteres) y DATE(8 caracteres) o puede haber celdas en las que este uno pero el otro no, o puede que no este ninguno.
2º Siempre que aparezca VOI y DATE los caracteres están juntos a la palabra...
3º Cuando aparece la palabra DATE el numero de caracteres después es de 8 o puede encontrar fechas con menos 1/6/09 o siempre es formato 01/06/09.
Aclarame todo esto porque es imprescindible para realizar el código.
>Un saludo
>Julio
Hola Julio primero muchísimas gracias por contestar.
1.- Si en todas existe la palabra VOI de (3 y 8 caracteres) y en todas las celdas estará,
2.-Los caracteres están juntos para el caso de VOI y para el caso de DATE están después de un espacio blanco
3.- Y el formato de fechas siempre es de 8 caracteres 00/00/00
Gracias Julio!
Hollá, dibujas un botón en la hoja y le asignas esta macro, esta pensada para que busque tus datos en la Col A si no es la tuya la cambias:
Sub buscar()
Dim texto, valor, can As String
Dim numero, c As Integer
Range("A1").Select
Do While ActiveCell.Value <> ""
texto = ActiveCell.Text
numero = Len(texto)
c = 1
Do While c <> numero - 3
valor = Mid(texto, c, 3)
can = Mid(texto, c + 3, 3)
If valor = "VOI" Then
ActiveCell.Offset(0, 1).Value = can
Exit Do
End If
c = c + 1
Loop
Do While c <> numero - 8
valor = Mid(texto, c, 4)
can = Mid(texto, c + 5, 8)
If valor = "DATE" Then
ActiveCell.Offset(0, 2).Value = can
Exit Do
End If
c = c + 1
Loop
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas