Cómo he automatizado procesos durante años sin gastar en software: Excel, BAT, PowerShell y Windows

Imagen
Cómo he automatizado procesos durante años sin gastar en software: Excel, BAT, PowerShell y Windows Durante mis años trabajando en sistemas he aprendido algo que sigue siendo muy útil: para automatizar un proceso no siempre necesitas comprar un software especializado . Muchas veces las herramientas necesarias ya están en nuestra computadora. En mi caso, algunos de mis principales aliados para automatizar tareas han sido herramientas que muchas personas ya tienen disponibles, como:  Excel con macros VBA Los archivos BAT de MS-DOS/CMD El Programador de tareas de Windows PowerShell . Con ellas he podido automatizar procesos repetitivos, procesamiento de archivos, generación de reportes y tareas que de otra manera tendrían que ejecutarse manualmente. En este artículo quiero compartir mi caja de herramientas de automatización de bajo costo y, sobre todo, cómo decidir qué herramienta utilizar dependiendo del problema. ¿Por qué automatizar con las herramientas que ya tienes? Cuando pensa...

Macro de Excel para ordenar datos y obtener datos únicos de una columna o fila

Hola en esta ocasión les quiero compartir un ejemplo de una macro de Excel para poder ordenar datos de columnas y obtener los datos únicos de una columna.

Por ejemplo yo tengo un Archivo de Excel del que quiero obtener las fechas para poder obtener los datos y los mostrare en una columna, la pantalla de ejemplo se ve así




  • El primer caso es para obtener los fechas únicas de una columna y colocarlas en una columna

'select dates filas
    'Declaramos variables
    Dim fin As Long, i As Long, unicos As Variant, unicos2 As Variant
    With Sheets("InputFile")
        fin = Application.CountA(.Range("A:A"))
        unicos = WorksheetFunction.Unique(.Range("A1:A" & fin))
        'Obtenemos los datos de la matriz y los pasamos a una columna
        i = 0
        For i = LBound(unicos) To UBound(unicos)
            .Cells(i + 1, 5) = unicos(i, 1)
            Next i
        .Range("E2:E100").Select
        Selection.Columns.Sort key1:=Columns("E"), Order1:=xlAscending
    End With
  • Ahora obtener las fechas únicas pero de una fila y colocarlos en una columna
'select dates columnas
    With Sheets("InputFile")
        fin = 0
        unicos2 = WorksheetFunction.Unique(.Range("H1:AE1"))
        'Obtenemos los datos de la matriz y los pasamos a una columna
        i = 0
        For i = LBound(unicos) To UBound(unicos)
            If unicos2(i) <> Empty Then
                .Cells(i + 1, 6) = unicos2(i)
          End If
            Next i
        End With
    Worksheets("InputFile").Range("F2:F100").Select

    ' Sort column C, after column N and after column F
    Selection.Columns.Sort key1:=Columns("F"), Order1:=xlAscending
Blog de Programacion para todos


Como se ve el archivo después de correr la macro
Macro_unicos_ordenar datos Blog de programacion

Les comparto un video para ver cómo funciona la macro


Esta macro la probé en la versión Excel 2019 y Microsoft 365, espero les sea de utilidad y puedan aplicarla en su trabajo o en la escuela

Comentarios

🚀 Mantener este blog funcionando requiere tiempo y café. ¡Puedes contribuir con uno aquí!

Entradas más populares de este blog

Guía Práctica: Ejemplo Completo de ASPX para Desarrolladores Web

👉 Cómo obtener el tipo de cambio en Excel con API de Banxico (paso a paso)

Macro en Word para automatizar documentos: genera diplomas en segundos (con código VBA)