Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Insertar columnas

Insertar columnas con VBA  ó macros, me preguntaron en un foro de Excel como se insertaban columnas teniendo en cuenta los meses del año, como así también que el informe original no otorgara datos de meses en los cuales no había movimientos, por ello era necesario agregar columnas en base a los meses que faltaban y a su vez se tenía  que rellenar con ceros, en este ejemplo se insertan tantas columnas como sean necesarias  para que queden en orden correlativo del 1 al 12, simulando los meses, determina  cual es la última fila con valores de todas las columnas, en base a ello rellena hasta esa fila con ceros si no hay valor  que sea distinto de éste, en el link del final se encuentra el archivo que puedes descargar y adaptar a tus necesidades; te recomiendo que hagas click y leas un  excelente libro sobre el tema; aquí va el código:

Sub insertacol()
Application.ScreenUpdating = False
Dim fila, col, x, uf, ufmayor, dato As Integer
fila = 1
col = 1
x = 0
For x = 1 To 12
      dato = Sheets(«hoja1»).Cells(fila, x).Value
   If dato <> x Then
      Sheets(«hoja1»).Cells(fila, x).EntireColumn.Insert
      Sheets(«hoja1»).Cells(fila, x) = x
      Sheets(«hoja1»).Cells(fila, x).Select
    
      With Selection
           .NumberFormat = «000»
           .Font.Bold = True
      End With
   End If
   ‘col = col + 1
Next x
x = 0
For x = 1 To 12
     ‘Determino la última fila vacia
    uf = Sheets(«hoja1»).Cells(Rows.Count, x).End(xlUp).Row
    If uf > ufmayor Then
    ufmayor = uf
    End If
Next x
x = 0
‘Recorre columnas
For x = 1 To 12
     ‘Recorre filas
     For j = 2 To ufmayor
          ‘Determino cual es la columna que tiene la fila maxina de datos
          ‘Con ello se hasta donde rellenar con ceros, siempre que la celda este vacía
          If Sheets(«hoja1»).Cells(j, x) = Empty Then
             Sheets(«hoja1»).Cells(j, x) = 0
          End If
    Next j
   
Next x
Application.ScreenUpdating = False
End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir
manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

If this post was
helpful INVITE ME A COFFEE and so help keep
up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends