ELIMINAR

31/07/2005 - 22:04 por Fernando Kohan | Informe spam
Hola,,,, gracias por la ayida

Como puedo eliminar los caracteres alfanumericos de una cadena y dejar solo
el valor sin las letras ?



Fenarro

Preguntas similare

Leer las respuestas

#1 KL
31/07/2005 - 22:23 | Informe spam
Hola Fernando,

Podrias probar una funcion personalizada VBA colocandola en un modulo
estandar del proyecto VBA de tu libro de Excel. Para ello:

1) Haz clic-derecho sobre el nombre de cualquier hoja en una de las pestañas
de la parte de abajo de la ventana de Excel.
2) Elige la opcion Ver Codigo para abrir el Editor VBA.
3) Una vez en el Editor VBA, ve al menu Insertar>Modulo
4) En la ventana mas grande a la derecha pega el codigo que te pongo a
continuacion:

'--Inicio Codigo-
Function SoloTexto(txt As String)
Application.Volatile
Dim txt_final As String, Letter As String
txt_final = ""
On Error Resume Next
For c = 0 To Len(txt)
Letter = Mid(txt, c, 1)
If InStr("0123456789", Letter) = 0 Then
txt_final = txt_final & Letter
End If
Next
SoloTexto = txt_final
End Function
'--Fin Codigo-

5) Pulsa Alt+F11 para volver a la hoja
6) si tienes tu valor alfanumerico en la celda [A1], entonces introduce la
siguiente formula en las celda [B1]:

=SoloTexto(A1)

Saludos,
KL



"Fernando Kohan" wrote in message
news:
Hola,,,, gracias por la ayida

Como puedo eliminar los caracteres alfanumericos de una cadena y dejar
solo
el valor sin las letras ?



Fenarro


Respuesta Responder a este mensaje
#2 Héctor Miguel
31/07/2005 - 22:38 | Informe spam
hola, chicos !

Fernando Kohan escribio en el mensaje ...
Como puedo eliminar los caracteres alfanumericos de una cadena y dejar solo el valor sin las letras ?

KL escribio en el mensaje ...
'--Inicio Codigo-


Function SoloTexto(txt As String)
Application.Volatile
Dim txt_final As String, Letter As String
txt_final = ""
On Error Resume Next
For c = 0 To Len(txt)
Letter = Mid(txt, c, 1)
If InStr("0123456789", Letter) = 0 Then
txt_final = txt_final & Letter
End If
Next
SoloTexto = txt_final
End Function
'--Fin Codigo-





[si no interpreto equivocadamente]... me parece que lo que Fernando necesita es -precisamente- lo contrario a la funcion propuesta :(
se puede omitir el 'Application.Volatile' y el 'On Error Resume Next' con las siguientes -ligeras- modificaciones ;)
[ambos casos... 'dejar' solo textos o... 'dejar' solo numeros] y 'asumiendo' que 'se toma' desde la primer celda de un rango <
saludos,
hector.
en un modulo de codigo 'normal' ==Function Omitir_Literales(ByVal Ref As Range) As Double
Dim Pos As Integer, Tmp As String
For Pos = 1 To Len(Ref.Range("a1"))
If Mid(Ref.Range("a1"), Pos, 1) Like "[0-9]" Then _
Tmp = Tmp & Mid(Ref.Range("a1"), Pos, 1)
Next
If Len(Tmp) > 0 Then Omitir_Literales = CDbl(Tmp)
End Function
Function Omitir_Numerales(ByVal Ref As Range) As String
Dim Pos As Integer
For Pos = 1 To Len(Ref.Range("a1"))
If Not Mid(Ref.Range("a1"), Pos, 1) Like "[0-9]" Then _
Omitir_Numerales = Omitir_Numerales & Mid(Ref.Range("a1"), Pos, 1)
Next
End Function
Respuesta Responder a este mensaje
#3 Fernando Kohan
31/07/2005 - 22:38 | Informe spam
gracias
pero cuando cambie la , por el ; funciono la anterior
gracias
fdo
"KL" wrote in message
news:#
Hola Fernando,

Podrias probar una funcion personalizada VBA colocandola en un modulo
estandar del proyecto VBA de tu libro de Excel. Para ello:

1) Haz clic-derecho sobre el nombre de cualquier hoja en una de las


pestañas
de la parte de abajo de la ventana de Excel.
2) Elige la opcion Ver Codigo para abrir el Editor VBA.
3) Una vez en el Editor VBA, ve al menu Insertar>Modulo
4) En la ventana mas grande a la derecha pega el codigo que te pongo a
continuacion:

'--Inicio Codigo-
Function SoloTexto(txt As String)
Application.Volatile
Dim txt_final As String, Letter As String
txt_final = ""
On Error Resume Next
For c = 0 To Len(txt)
Letter = Mid(txt, c, 1)
If InStr("0123456789", Letter) = 0 Then
txt_final = txt_final & Letter
End If
Next
SoloTexto = txt_final
End Function
'--Fin Codigo-

5) Pulsa Alt+F11 para volver a la hoja
6) si tienes tu valor alfanumerico en la celda [A1], entonces introduce la
siguiente formula en las celda [B1]:

=SoloTexto(A1)

Saludos,
KL



"Fernando Kohan" wrote in message
news:
> Hola,,,, gracias por la ayida
>
> Como puedo eliminar los caracteres alfanumericos de una cadena y dejar
> solo
> el valor sin las letras ?
>
>
>
> Fenarro
>
>


Respuesta Responder a este mensaje
#4 KL
31/07/2005 - 23:07 | Informe spam
bip bip bip: sobrecarga en el sistema, reinicie el equipo!!! :-D
me voy a la cama ya - necesito un descanso

Saludos,
KL


"Héctor Miguel" wrote in message
news:uOYxC$
hola, chicos !

Fernando Kohan escribio en el mensaje ...
Como puedo eliminar los caracteres alfanumericos de una cadena y dejar
solo el valor sin las letras ?



KL escribio en el mensaje ...
'--Inicio Codigo-


Function SoloTexto(txt As String)
Application.Volatile
Dim txt_final As String, Letter As String
txt_final = ""
On Error Resume Next
For c = 0 To Len(txt)
Letter = Mid(txt, c, 1)
If InStr("0123456789", Letter) = 0 Then
txt_final = txt_final & Letter
End If
Next
SoloTexto = txt_final
End Function
'--Fin Codigo-





[si no interpreto equivocadamente]... me parece que lo que Fernando
necesita es -precisamente- lo contrario a la funcion propuesta :(
se puede omitir el 'Application.Volatile' y el 'On Error Resume Next'
con las siguientes -ligeras- modificaciones ;)
[ambos casos... 'dejar' solo textos o... 'dejar' solo numeros] y
'asumiendo' que 'se toma' desde la primer celda de un rango <>
saludos,
hector.
en un modulo de codigo 'normal' ==> Function Omitir_Literales(ByVal Ref As Range) As Double
Dim Pos As Integer, Tmp As String
For Pos = 1 To Len(Ref.Range("a1"))
If Mid(Ref.Range("a1"), Pos, 1) Like "[0-9]" Then _
Tmp = Tmp & Mid(Ref.Range("a1"), Pos, 1)
Next
If Len(Tmp) > 0 Then Omitir_Literales = CDbl(Tmp)
End Function
Function Omitir_Numerales(ByVal Ref As Range) As String
Dim Pos As Integer
For Pos = 1 To Len(Ref.Range("a1"))
If Not Mid(Ref.Range("a1"), Pos, 1) Like "[0-9]" Then _
Omitir_Numerales = Omitir_Numerales & Mid(Ref.Range("a1"), Pos, 1)
Next
End Function

Respuesta Responder a este mensaje
#5 Héctor Miguel
31/07/2005 - 23:23 | Informe spam
hola, KL !

... necesito un descanso



mas que ganado y merecido :)

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida