Excel - Eliminar columna según mes actual

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 12 puestos en Excel (en relación al último mes)
Gráfica de Excel

Eliminar columna según mes actual

Publicado por Ricard (8 intervenciones) el 28/06/2018 10:02:20
Buenos días.
Todos los meses descargo de un servidor una tabla excel con mas de 60000 registros distribuidos por columnas cuyos encabezados son los Apellidos y Nombre, Nif, Producto, los meses de Enero a Diciembre, gasto, ingreso, y otras columnas. Con el fin de eliminar datos que no necesito elimino los meses con los que no voy a trabajar, ya que solo necesito el mes en curso. Para ello he venido utilizando esta macro que debo modificar cada mes para no eliminar el mes en curso:
1
2
3
4
5
6
7
Sub EliminarMes()
'Eliminar Mes
Sheets("Inicio").Select
Range("A:B, E:L, O:S, V:Z, AB:CA").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
End Sub

Así que mi pregunta es si existe la posibilidad de eliminar con una macro de manera automática las columnas de los meses que no se correspondan con el mes actual.

Gracias por vuestra ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.149
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Eliminar columna según mes actual

Publicado por Antoni Masana (1494 intervenciones) el 28/06/2018 11:37:32
Si que existe.

Para hacer la macro necesito un libro de muestra y una explicación de que columnas necesitas conservar.

El libro con que tenga las etiquetas de columna será suficiente y si no hay etiquetas la descripción de las columnas a conservar
Por ejemplo

Conservar la columnas
1 - Apellidos
2.- Nombre
3 - Nif
21-32 Meses del año (conservar mes actual. Hoy es 28/06, Junio estaría en la columna 26 y se borra de la 21 a la 25 y de la 27 a la 32)
40 - Gatos
etc.

Con estos datos se que se han de conservar las columnas 1-2-3-26-40. Siendo el 26 variable entre 21 y 32)

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 12 puestos en Excel (en relación al último mes)
Gráfica de Excel

Eliminar columna según mes actual

Publicado por Ricard (8 intervenciones) el 28/06/2018 20:47:42
Buenas tardes,

muchas gracias por su atención. Le facilito la hoja excel en la que le señalo las columnas a eliminar y como le comentaba la posibilidad de las columnas que hacen referencia a los meses sean eliminadas, salvo la del mes en curso.

Un cordial saludo

Ricard
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.149
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Eliminar columna según mes actual

Publicado por Antoni Masana (1494 intervenciones) el 29/06/2018 08:07:15
Te envío dos por el precio de una

Esta primera guarda la columnas según su posición inicial, es decir no borra las columnas 3,4, 13,14, 20, 21 y la del mes en curso y forzosamente tiene que empezar por la derecha.

1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Cabeceras_Por_Posicion()
    Dim Col As Integer, Mes As Byte
 
    For Col = 80 To 1 Step -1
        Mes = Month(Date) + 21
        Select Case Col
            Case 3, 4, 13, 14, 20, 21, Mes
            Case Else
               Columns(Col).Select
               Selection.Delete Shift:=xlToLeft
        End Select
    Next
End Sub

Esta segunda es un poquito más larga pero no es necesario saber en que número de columna esta la que se quiere conservar, ya que se tiene en cuenta la etiqueta personal de la columna en la fila 1 y se puede hacer de izquierda a derecha o de derecha a izquierda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Sub Cabeceras_Por_Nombre()
    Dim Col As Integer, A As Byte, Tabla(7) As String, _
        Borrar As Boolean
 
    Tabla(1) = "Nif"
    Tabla(2) = "Nombre Completo"
    Tabla(3) = "Id Tipo RJ"
    Tabla(4) = "Categoria "
    Tabla(5) = "ID Producto"
    Tabla(6) = "Descripción"
 
    Select Case Month(Date)
        Case 1: Tabla(7) = "Enero"
        Case 2: Tabla(7) = "Febrero"
        Case 3: Tabla(7) = "Marzo"
        Case 4: Tabla(7) = "Abril"
        Case 5: Tabla(7) = "Mayo"
        Case 6: Tabla(7) = "Junio"
        Case 7: Tabla(7) = "Julio"
        Case 8: Tabla(7) = "Agosto"
        Case 9: Tabla(7) = "Septiembre"
        Case 10: Tabla(7) = "Octubre"
        Case 11: Tabla(7) = "Noviembre"
        Case 11: Tabla(7) = "Diciembre"
    End Select
 
    For Col = 80 To 1 Step -1
        Borrar = True
        For A = 1 To 7
            If Cells(1, Col) = Tabla(A) Then Borrar = False
        Next
 
        If Borrar Then
           Columns(Col).Select
           Selection.Delete Shift:=xlToLeft
        End If
    Next
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 12 puestos en Excel (en relación al último mes)
Gráfica de Excel

Eliminar columna según mes actual

Publicado por Ricard (8 intervenciones) el 29/06/2018 09:45:12
Buenos días Sr. Masana

Muchísimas gracias por su atención. Me ha ahorrado usted mucho trabajo. Me hubiera gustado valorar su atención con un 10 pero solo me permite los valores -1, 0 y 1.

Un cordial saludo

Ricard
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar