Obtener valores únicos en fila de excel

Tengo la siguiente estructura en excel

Doc_iden      nombres      telefono1    telefono2     telelfono3    telefono4

nnnnnn      mmmmm      Num1          num2           num1            vacio

Así en forma intercalada y hasta puedo tener 10 números de teléfono

Desearía una macro que me ayude en copiar en otro sheet el documento, nombre y solo los teléfonos únicos ya que como ven en el ejemplo el numero1 lo puedo tener repetido en telefono1 y telefono3 y solo lo deseo 1 sola vez

Si me pudieran ayudar seria excelente

1 respuesta

Respuesta
1

H o l a:

Para hacer la macro, me puedes decir lo siguiente:

  • Nombre de la hoja que contiene los datos
  • Nombre de la hoja destino
  • Fila de encabezados
  • Columna de documentos
  • Columna de nombres
  • Columna donde empiezan los teléfonos

gracias por responderme

la hoja de los datos se llama Base

hoja destino se llama Resultado

la fila de encabezados es la fila 1

columna de documentos es la columna A

columna de nombres es la columna B

la columna de los telefonos empieza en la columna C y sigue en la E, G,I intercalado pero las columnas intermedias no las necesito en la hola resultante

gracias

H o l a:

Te anexo la macro

Sub ValoresUnicos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set h1 = Sheets("base")
    Set h2 = Sheets("resultado")
    h2.Cells.Clear
    Set h3 = Sheets.Add
    h1.Rows(1).Copy h2.Rows(1)
    For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
        h3.Cells.Clear
        h2.Cells(i, "A") = h1.Cells(i, "A")
        h2.Cells(i, "B") = h1.Cells(i, "B")
        uc = h1.Cells(i, Columns.Count).End(xlToLeft).Column
        If uc > 2 Then
            h1.Range(h1.Cells(i, "C"), h1.Cells(i, uc)).SpecialCells(xlCellTypeConstants, 23).Copy
            h3.[A1].PasteSpecial xlValue, Transpose:=True
            uf = h3.Range("A" & Rows.Count).End(xlUp).Row
            h3.Range("A1:A" & uf).RemoveDuplicates Columns:=1, Header:=xlNo
            uf = h3.Range("A" & Rows.Count).End(xlUp).Row
            h3.Range("A1:A" & uf).Copy
            h2.Cells(i, "C").PasteSpecial xlValues, Transpose:=True
        End If
    Next
    h3.Delete
    Application.ScreenUpdating = True
    h2.Select
    MsgBox "Fin"
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Hola, gracias por la macro

solo tengo una duda, estoy probando con data de prueba(3 lineas) y en las dos primeras lineas pasa ok pero en la ultima linea donde solo tengo un telefono en el telefono1(celda c) cuando llega a la linea 

h1.Range(h1.Cells(i, "C"), h1.Cells(i, uc)).SpecialCells(xlCellTypeConstants, 23).Copy

me sale el sgte mensaje

"se ha producido el error 1004  en tiempo de ejecucion"

"no se puede ejecutar este comando en selecciones multiples"

que crees que pueda ser

gracias

Hola ya pude solucionar al problema anterior.

solo tengo una duda final

Existe un limite de filas para ejecutar la macro porque a veces tendré como 25000 registros

gracias 

No hay límite. Bueno, el límite es la capacidad de filas que tiene la hoja de excel, que son más de un millón de líneas. Tampoco hay límite en las columnas.

R ecuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas