Discriminación entre 1 y todos los nºs que comienzan en 1

Tengo una hoja excel donde capturo el nº de albarán de un registro que tengo guardado en otra hoja excel. El problema es que cuando ejecuto una macro para que me muestre un nº de albarán, no me discrimina entre el nº uno, diez, once, doce..., es decir, he creado nºs de albarán y voy por el nº doce. Cuando ahora muestro el nº 1, me muestra todo el detalle de los albaranes que "contienen" un uno, es decir, del 1, 10, 11, 12..., no me discrimina el uno de los que contienen un uno. A continuación te envío la macro que tengo para seleccionar el nº de albarán. Si no lo interpretas bien o necesitas el libro, dime a qué correo te lo envío o cómo te lo hago llegar. Como siempre, gracias por tu tiempo, y no te preocupes por el tiempo, cuando puedas. De verdad, muchas gracias:

Sub Imprimealbaran2()
Filtraalbaran2
Range("A2").Select
Range("ALBARANDETALLEPESTAÑA").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("X1:X2"), CopyToRange:=Range("RANGOFILTROAPEGAR"), Unique:=False
Application.CutCopyMode = False
Range("A2").Select
Sheets("MODIFICAR").Activate
aña1
Range("E5").Activate

End Sub

Sub Filtraalbaran2()
Dim X As String
X = InputBox("INDICA EL Nº DE ALBARÁN")
Range("X2").Value = X
Mayusculas
If Range("X2") = 0 Then
MsgBox ("Edición anulada")
Sheets("MODIFICAR").Activate
Range("E5").Select
End
Else
Range("ALBARANDETALLEPESTAÑA").AdvancedFilter xlFilterCopy, Range("X1:X2"), Range("RANGOFILTROAPEGAR"), False
Ordenarfiltro
End If
End Sub

1 Respuesta

Respuesta
1

Los filtros avanzados tienen una manera particular de interpretar los criterios texto

Si tu colocas una cadena de letras... se intrepreta como la propia cadena agregando un * al final (y * signifca cualquier cadena de caracteres, incluyendo ninguna cadena)

Por lo tanto, solo en fitros avanzados (no en funciones .SI, BUSCARV, COINCIDIR, HALLAR, etc).:

A significa A*, MAR significa MAR* y 1 significa 1*

(Pero solo si 1 es un número almacenado como texto... ¿los comodines * y? Solo funcionan en texto)

La clave está en que este comportamiento se da cuando en la celda no figura el signo de comparación... signos de comparación hay 6: > <      >= <=     =      <>

En el caso de igual (=) uno lo suele escribir y allí se genera el problema... (en los otros criterios como por ejemplo >6, <=3 ... al escribirlos no existen problemas)

Lo que tienes que hacer es incluir el signo de igual en tu criterio...

En la celda en la que has puesto tu "1" coloca la siguiente fórmula:

="=1"

(Los = y las " son intencionales) eso hará que en la celda se vea como resultado =1 con todo y el signo = y el número 1... en ese caso el criterio si será absolutamente exacto a 1

Hola Jaime, lo primero gracias por contestar. Lo segundo, disculpa porque he estado de baja una temporada. Comentarte, he entendido lo que me comentas, pero no sé dónde tengo que poner la fórmula que me indicas. Si no te importa, ¿te puedo enviar el fichero y te explico?, así verás el problema insitu. Ya me dices, y gracias por tu tiempo

Por lo que veo en tu macro, tu criteria range esta en X1:X2. Esto me indica que en X2 tu fórmula probablemente sea simplemente

1

Es en esa celda que deberías colocar

="=1"

Prueba si funciona, sino me envías el archivo

Saludos,

Jaime

[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas