Modificar VBA de extraer números no repetidos de rangos

Sub Extraer_No_Repetidos()
  Dim sh As Worksheet, dic As Object, ky As Variant, rangos As Variant
  Dim c As Range, i As Long, lr As Long
  'ENTRADA
  Set dic = CreateObject("Scripting.Dictionary")
  Set sh = Sheets("Hoja1")
  lr = ActiveCell.Row
  rangos = Array("A" & lr & ":E" & lr, "H" & lr & ":L" & lr, "O" & lr & ":S" & lr, "V" & lr & ":Z" & lr)
  'PROCESO
  For i = 0 To UBound(rangos)
    For Each c In sh.Range(rangos(i))
      If c.Value <> "" Then dic(c.Value) = dic(c.Value) + 1
    Next
  Next
  'SALIDA
  i = Columns("AD").Column
  For Each ky In dic.keys
    If dic(ky) = 1 Then
      sh.Cells(lr, i).Value = ky
      i = i + 1
    End If
  Next
End Sub

buena tarde

Tengo la siguiente macro proporcionada por un experto, trabaja muy bien y lo que hace es que de los 4 rangos de la imagen, extrae los valores NO REPETIDOS de esos rangos.

Ahora necesitaría que la macro haga el mismo proceso pero en vez de sacar los números no repetidos, lo haga con los repetidos, pero en este caso solo repetidos 2 veces, "en la macro coloque como debería quedar los resultados" en ese caso esos números están repetidos SOLO 2 VECES. Ya que hay otros números repetidos pero están repetidos 3 o más veces.

Ahora lo siguiente:

Como hay más números que se repiten más de 2 veces. Y desconozco este lenguaje de programación, no se si podamos modificar en la macro en alguna parte, que si necesito que extraiga del rango los números repetidos ya no 2 veces, si no 3 veces, o 4 veces, lo pueda modificar, o tocaría hacer una macro diferente por cada caso. Si es así no tengo problema en abrir una pregunta por cada uno.

De resto que la macro funcione con las mismas condiciones que lo esta haciendo

*Se ejecuta solo en la hoja que esta indicada en la macro "hoja1" así yo este en otra hoja del libro

* Se ejecuta solamente en la fila que estoy activo. Osea si estoy en la fila 5, se ejecuta solo en esa fila de la hoja1

Mil gracias espero haber sido claro y quedo atento a inquietudes, :)

1 respuesta

Respuesta
1

No lo vas a creer! Pero solamente tienes que modificar este número en la macro para obtener el número de repeticiones, si quieres los números que se repiten dos veces:

If dic(ky) = 2 Then

Si quieres los números que se repiten 3 veces, entonces cambia a 3.

¡Gracias! Dante. jajajaj zapatero a sus zapatos.. Bueno menos mal estuvo fácil. Gracias :) tengo un duda más referente a otra macro que hemos manejado anteriormente con la función de aleatorio, me esta generando algunos problemas. :P.. voy a subir la pregunta.

Mil y mil gracias nuevamente.

Siempre un placer ayudarte, g racias por comentar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas