Macro ordenar por columna y separar con una línea en blanco por el rango de nombre

Tengo esta base con muchas líneas

Necesito oredenarlas yseparalas con una línea en blanco y que repita el encabezado de la columna de esta forma:

Se de realizar hasta el final de la base

1 respuesta

Respuesta
1

.16/08/16

Buenas noches, Herman

Espero haberte entendido correctamente.

En tal caso, activa el editor de Visual Basic (atajo: Alt+F11), inserta un nuevo módulo ("Insertar", "Módulo") y pega el siguiente código:

Sub InsTit()
'Indica la celda donde empiezan los títulos/encabezados
CeldaIniTit = "A1"
Set RangTit = Range(CeldaIniTit, Range(CeldaIniTit).Offset(0, Range(CeldaIniTit).CurrentRegion.Columns.Count - 1))
UltFila = RangTit.CurrentRegion.Rows.Count
Range(CeldaIniTit).Select
' ordenamiento previo de la base:
RangTit.CurrentRegion.Sort Key1:=Range(CeldaIniTit), Order1:=xlAscending, Header:=xlYes
'Rutina de insertar filas en blanco:
For FilaAct = 2 To UltFila
    KEYsep = Range(CeldaIniTit).Offset(FilaAct - 1)
    If Range(CeldaIniTit).Offset(FilaAct) <> KEYsep Then
        Range(CeldaIniTit).Offset(FilaAct).EntireRow.Insert xlDown
        Range(CeldaIniTit).Offset(FilaAct).EntireRow.Insert xlDown
        RangTit.Copy Range(CeldaIniTit).Offset(FilaAct + 1)
        UltFila = UltFila + 2
        FilaAct = FilaAct + 2
    End If
Next
Set RangTit = Nothing
End Sub

Bien, verás que sólo debes indicar cuál es la celda donde inicia la base y, espero, estén los nombres de los proveedores.

La rutina luego se encarga de ordenar la base y de hacer las separaciones que solicitabas en tu pregunta.

A fin de evitar problemas, te sugiero que pruebes la rutina en una copia de tu hoja y veas si funcionó como esperabas.

En tal caso, espero tu devolución y la calificación que creas merece mi respuesta.

Si no, antes de valuarla, comentame qué inconveniente encontraste.

Un abrazo

Fernando

(Buenos Aires, Argentina)

.

¡Gracias!  Excelente funciona perfecto.

quiero abusar un poco de tu generosidad.

En la misma base ya separada necesito que se envié los rangos por mail según una tabla donde están todos los proveedores. La idea es que busque el primer nombre del rango lo compare con la tabla de proveedores al encontrarlo copie el mail encontrado inserte el rango de la base separada(con sus encabezados), ponga un asunto tipo,y firma del correo, esto lo realice  uno a uno hasta el final de la base separada, en el caso que no encuentre o no cooncida me indique en la hoja que este no se envió y continué con la siguiente hasta el final.

Lo puede copiar como imagen o rango excel, 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas