Extraer una valor concreto de una cadena de texto

20/02/2005 - 21:40 por guayaber | Informe spam
Hola a todos,

Tengo una serie de celdas rellenadas de texto.
De estas celdas quiero extraer la clave de un usuario que comienza por "gm"
seguido de 5 dígitos. P.ej. gm01234
Esta clave se repite en cada registro/celda.

He intentado una macro con INSTR... pero me da problemas.

Alguien podría ayudarme...!!!

Preguntas similare

Leer las respuestas

#1 KL
20/02/2005 - 21:54 | Informe spam
Hola guayaber,

Prueba esta formula:

=EXTRAE(A1;ENCONTRAR("GM";MAYUSC(A1));7)

Saludos,
KL

"guayaber" wrote in message
news:oB6Sd.13330$
Hola a todos,

Tengo una serie de celdas rellenadas de texto.
De estas celdas quiero extraer la clave de un usuario que comienza por
"gm"
seguido de 5 dígitos. P.ej. gm01234
Esta clave se repite en cada registro/celda.

He intentado una macro con INSTR... pero me da problemas.

Alguien podría ayudarme...!!!


Respuesta Responder a este mensaje
#2 KL
20/02/2005 - 22:06 | Informe spam
Hola de nuevo,

Si quieres codigo, podrias usar este:

Sub EXTRAER()
mitxt = ActiveCell.Value
On Error GoTo ManejoDeErrores
miusuario = Mid(mitxt, InStr(UCase(mitxt), "GM"), 7)
MsgBox miusuario
Exit Sub
ManejoDeErrores:
MsgBox "No se ha encontrado la clave de usuario."
End Sub

Saludos,
KL


"guayaber" wrote in message
news:oB6Sd.13330$
Hola a todos,

Tengo una serie de celdas rellenadas de texto.
De estas celdas quiero extraer la clave de un usuario que comienza por
"gm"
seguido de 5 dígitos. P.ej. gm01234
Esta clave se repite en cada registro/celda.

He intentado una macro con INSTR... pero me da problemas.

Alguien podría ayudarme...!!!


Respuesta Responder a este mensaje
#3 KL
20/02/2005 - 23:18 | Informe spam
Si es posible q la combinacion "gm" aparezca mas de una vez en el texto
(p.ej si hay palabras tipo "pragmatico", "enigma", "paradigma", "dogma",
"augmentine", etc.) puedes probar este codigo q seria un poco mas preciso
(buscara solo la combinacion de gm/GM y 5 digitos seguidos):

Sub EXTRAER2()
mitxt = ActiveCell.Value
If Len(mitxt) >= 7 Then
For letra = 1 To Len(mitxt) - 6
miusuario = Mid(mitxt, letra, 7)
If UCase(miusuario) Like "GM#####" Then
MsgBox miusuario
Exit Sub
End If
Next letra
End If
MsgBox "No se ha encontrado la clave de usuario."
End Sub

Saludos,
KL


"guayaber" wrote in message
news:oB6Sd.13330$
Hola a todos,

Tengo una serie de celdas rellenadas de texto.
De estas celdas quiero extraer la clave de un usuario que comienza por
"gm"
seguido de 5 dígitos. P.ej. gm01234
Esta clave se repite en cada registro/celda.

He intentado una macro con INSTR... pero me da problemas.

Alguien podría ayudarme...!!!


Respuesta Responder a este mensaje
#4 KL
21/02/2005 - 01:46 | Informe spam
Aqui va una funcion q acabo de escribir y q se puede utilizar tanto en la
hoja de calculo como en el codigo. Se tiene q colocar en un modulo q no sea
de clase (es decir q no sea de Hoja, Libro, Formulario, etc.). Ejemplos del
uso en la hoja de calculo:

=ExtraerPatron("001-gm01234usuario","gm#####")
=ExtraerPatron("001-gm01234usuario",B1)
=ExtraerPatron(A1,"gm#####")
=ExtraerPatron(A1,B1)

Se pueden usar todos los signos "wildcard" q se usan con el operador Like de
VBA, p.ej.: #, ?, *, [], [!], etc.

He probado la funcion y parece funcionar correctamente, pero agradecere
cualquier informacion sobre los posibles errores.

Saludos,
KL

Function ExtraerPatron(Texto As String, _
Patron As String) As String
Dim Letra As Integer
Dim Largo As Integer
Dim TextoTemp
Texto = Trim(Texto)
If Texto Like "*" & Patron & "*" Then
If Texto Like Patron Then
ExtraerPatron = Texto
Exit Function
End If
For Letra = 1 To Len(Texto) - _
Len(Replace(Patron, "*", "")) + 1
For Largo = Len(Texto) - Letra + 1 To 1 Step -1
TextoTemp = Mid(Texto, Letra, Largo)
If UCase(TextoTemp) Like UCase(Patron) Then
ExtraerPatron = TextoTemp
Exit Function
End If
Next Largo
Next Letra
End If
ExtraerPatron = ""
End Function


"guayaber" wrote in message
news:oB6Sd.13330$
Hola a todos,

Tengo una serie de celdas rellenadas de texto.
De estas celdas quiero extraer la clave de un usuario que comienza por
"gm"
seguido de 5 dígitos. P.ej. gm01234
Esta clave se repite en cada registro/celda.

He intentado una macro con INSTR... pero me da problemas.

Alguien podría ayudarme...!!!


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida