Perfeccionamiento de macro en excel

Tengo la siguiente macro:

Sub ListaNum()
'---- Variables modificables:
'=== JHON, modifica estos datos de acuerdo a tu planilla:
RangoNum = "F1:U40" 'celda inicial donde está el Historial Numérico
CeldaDest = "Y1" 'celda a partir de la cual listar los valores coincidentes
ElColor = 44 'color a dar a las celdas con coincidencias. Cero para que quede en blanco
Cifras = 2 ' cantidad cifras considerar para comparar <<<<<
'---- fin Variables
'
'---- inicio de rutina:
'
Numero = InputBox("ingrese NUMERO de referencia" & Chr(10) & "(vacio para salir sin hacer nada)", "BUSQUEDA DE COINCIDENCIAS")
If Len(Numero) Then
With Range(CeldaDest).Offset(0, 1)
.Value = Numero
.Font.Bold = True
.HorizontalAlignment = xlLeft
.Interior.ColorIndex = ElColor
End With
Range(Range(CeldaDest). Offset(1), Range(CeldaDest). Offset(Range(CeldaDest). CurrentRegion. Rows. Count)). Clear
Set RangoNum = Range(RangoNum, Range(RangoNum).Offset(Range(RangoNum).CurrentRegion.Rows.Count))
For Each valor In RangoNum
valor.Interior.ColorIndex = 0
If valor > 0 Then
For pos = 1 To Len(valor)
CifraV = Mid(valor, pos, Cifras)
CifraN = Mid(Numero, pos, Cifras)
If Len(CifraV) = Cifras Then
If CifraV = CifraN Then
Range(CeldaDest).Offset(Range(CeldaDest).CurrentRegion.Rows.Count).Value = valor
valor.Interior.ColorIndex = ElColor
Cont = Cont + 1
Exit For
End If
Else
Exit For
End If
Next
End If
Next
ElMensaje = IIf(Cont = 0, "NO SE ENCONTRÓ NUMERO PARA AGREGAR", "Cantidad de números agregados " & Cont & " número" & IIf(Cont > 1, "s", ""))
ElTitulo = "TERMINADO!"
MsgBox ElMensaje, vbInformation, ElTitulo
Set RangoNum = Nothing

End If
End Sub

Pero al ejecutarla no da todas las coincidencias de dos cifras y es que al ejecutarla por una cifra de coincidencias los números son demasiados

1 Respuesta

Respuesta
1

.

Buenas noches, Fredy

Esa rutina que pegas aquí funcionaba correctamente, en tanto las variables iniciales correspondieran a la planilla donde la ejecutas.

Veré tu archivo para rechequearla y te comento.

Saludos

Fer

.

.

Buenas, Fredy

Acabo de enviarte un mail a tu cuenta.
La rutina funciona bien.

Considera que la variable:

Cifras = 2 ' cantidad cifras considerar para comparar <<<<<

Indica que tome los valores de a 2.

Muy buen fin de semana

Fer

.

si no se puede cambiar entonces cambiemosle las condiciones que exista las 6 coincidencias de 2 cifras que serian la primera cifra y la ultima,la segunda cifra y la cuarta,la primera y la tercera,  la segunda y la tercera,las dos primeras, y finalmente las dos ultimas

seria otra forma de que funcionara como coincidencia de dos cifras

.

Ok, Fredy

Desde luego que se puede cambiar. Pero esto es distinto a lo que habías pedido originalmente.

Trabajaré en ese cambio pero deberías confirmar si la posición donde se encuentren esos dos valores importa. Porque existe la posibilidad de que dos cifras de un numero estén en otro pero en distinto orden y posición. (¿Ejemplo debería considerar 5382 si el número de referencia fuese 1234?)

¿Luego pedirás que considere tres cifras? ¿O con dos es suficiente?

Saludos

Fer

.

fernando ya me dieron la solución muchas gracias

.

Ok. Perfecto.

Había quedado pendiente tu respuesta a mi pedido de ampliación.

Le envío la macro de solución por si la necesita alguien en el trabajo al correo

Ok.

Recibida, gracias.

Después la miro. Tengo unos días cargados en el trabajo.

Saludos

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas