Problema con tipos de datos

Estoy realizando una macro que me tiene que identificar una serie de referencias de piezas de plástico el problema consiste en que dichas referencias tienen tanto números como letras. Lo he intentado identificando el tipo de datos como string no funciona, como variant tampoco. ¿Por qué? Yo creo se han introducido los datos unas veces con intro y otras con tabulador y en algunas cuando digo que me busque una referencia en concreto veo que con el debug.print los valores de las variables son iguales ejem 69625846S vs 69625846S sin embargo no me lo identifica como iguales ejemplo de código fuente.
No se que hacer ya! Soy novato en esto de excel y si me puedes echar una mano se agradece.
Saludos samy
num = 18
mm = 18
With Worksheets(1).Range("c18:c5000")
nombre = ActiveSheet.Cells(num, 3)
'identifico el final de la lista
Do While nombre <> ""
num = num + 1
nombre = ActiveSheet.Cells(num, 3)
Loop
fin_busca = num
refentabla = ActiveSheet.Cells(mm, 3).Value
Debug.Print "la priemera referencia tabla = " & refentabla
nombre = UserForm1.TextBox1.Value
Debug.Print "la ref. Introducida en el userform1 " _
& " es = " & nombre
Debug.Print "el valor de todos los datos introducidos = " & fin_busca
For mm = 18 To fin_busca
refentabla = ActiveSheet.Cells(mm, 3).Value
If nombre <> refentabla Then
Debug.Print "la referencia de la tabla es = " & refentabla
Debug.Print "la variable nombre es = " & nombre
Debug.Print "punterok = " & mm
Else
punterok = mm
End If
Next mm
puntero:
'punterok = mm
Debug.Print "el valor del puntero k es = " & punterok
'asigno nuevos valores
Nref = UserForm2.Referen.Value
Debug.Print "la nueva referencia es = " & Nref
Ndenox = UserForm2.Denominacion.Value
Debug.Print "La denominacion nueva es = " & Ndenox
Nden_tecx = UserForm2.Deno_Tec.Value
Debug.Print "la deno tecnica nueva es = " & Nden_tecx
Nprec = UserForm2.PVMP.Value
'introduzco los valores actualizados en la tabla
ActiveSheet.Cells(punterok, 3).Value = Nref
ActiveSheet.Cells(punterok, 4).Value = Ndenox
ActiveSheet.Cells(punterok, 5).Value = Nden_tecx
ActiveSheet.Cells(punterok, 6).Value = Nprec
End With
UserForm2.Hide
End Sub

1 Respuesta

Respuesta
1
Si tus datos son Alfanuméricos, entonces manejalos como Texto, el Variant también te sirve, pero evita su uso pues consume mucha memoria, cuando obtengas el valor de un cuadro de texto o de una celda, utiliza el método Trim para quitar los espacios, aun cuando veas dos datos iguales, si uno de ellos tiene un espacio u otro carácter invisible antes, dentro o después, ya NO es igual, pero con Trim reducimos ese riesgo, por ejemplo...
Dim strDato As String
strDato = Trim(UserForm1.TextBox1.Text)
strDato = Trim(ActiveSheet.Cells(mm, 3).Value)
strDato = Trim(ActiveCell.Value)
otro ejemplo...
strNombre = " samy2 "
Debug.Print strNombre
strNombre = Trim(strNombre)
Debug. Print strNombre
" Samy2 "
"samy2"
Casi estoy seguro que por ahí va el error, pero cualquier duda vuelve a consultarme.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas