Saltar al contenido

DIVIDIR COLUMNAS EN HOJAS (NO VALIDACIÓN DE DATOS)


Shiussui

Recommended Posts

publicado

Buen día

Me podrían ayudar, necesito dividir una tabla que contienen 300 columnas con unas 1800 filas, cada columna pertenece a un centro de distribución y en las primeras 4 columnas (A:D) tengo información de productos que deseo mantener por cada hoja que yo cree,  en resumen necesito crear una hoja por centro que sólo contenga ese centro pero manteniendo las 4 primeras columnas, ( dividir esto manualmente es muy tardado).

 

Gracias

publicado

Si entendí bien hay un código que se ha compartido mucho en la WEB que sirve para crear hojas en base a una lista de la hoja activa, como ejemplo el rango es de A1:A7 que lo puedes ampliar según tus necesidades. Solo agrega un módulo en el VBA y haz una lista con los nombres que quieres por cada hoja.

Sub AddSheets()
    Dim xRg As Excel.Range
    Dim wSh As Excel.Worksheet
    Dim wBk As Excel.Workbook
    Set wSh = ActiveSheet
    Set wBk = ActiveWorkbook
    Application.ScreenUpdating = False
    For Each xRg In wSh.Range("A1:A7")
        With wBk
            .Sheets.Add after:=.Sheets(.Sheets.Count)
            On Error Resume Next
            ActiveSheet.Name = xRg.Value
            If Err.Number = 1004 Then
              Debug.Print xRg.Value & " already used as a sheet name"
            End If
            On Error GoTo 0
        End With
    Next xRg
    Application.ScreenUpdating = True
End Sub

¿Estamos hablando de 300 hojas en un libro? ¿No serían demasiadas para la capacidad de tu memoria?

Del contenido no entendí del todo, imagino es un libro muy pesado el original. ¿Algún ejemplo más visual que puedas compartir?

Saludines

 

publicado
hace 23 minutos , Israel Cassales dijo:

Si entendí bien hay un código que se ha compartido mucho en la WEB que sirve para crear hojas en base a una lista de la hoja activa, como ejemplo el rango es de A1:A7 que lo puedes ampliar según tus necesidades. Solo agrega un módulo en el VBA y haz una lista con los nombres que quieres por cada hoja.

Sub AddSheets()
    Dim xRg As Excel.Range
    Dim wSh As Excel.Worksheet
    Dim wBk As Excel.Workbook
    Set wSh = ActiveSheet
    Set wBk = ActiveWorkbook
    Application.ScreenUpdating = False
    For Each xRg In wSh.Range("A1:A7")
        With wBk
            .Sheets.Add after:=.Sheets(.Sheets.Count)
            On Error Resume Next
            ActiveSheet.Name = xRg.Value
            If Err.Number = 1004 Then
              Debug.Print xRg.Value & " already used as a sheet name"
            End If
            On Error GoTo 0
        End With
    Next xRg
    Application.ScreenUpdating = True
End Sub

¿Estamos hablando de 300 hojas en un libro? ¿No serían demasiadas para la capacidad de tu memoria?

Del contenido no entendí del todo, imagino es un libro muy pesado el original. ¿Algún ejemplo más visual que puedas compartir?

Saludines

 

Justamente es lo que mencionaba en el título que NO necesito, porque esta división es en base a un listado, lo único que requiero es dividir columnas en hojas conservando unas columnas de desripción para todas las hojas pero sólo la columna de información de una unidad por hoja, anexo un ejemplo esperando no sea muy burdo para que se entienda (no puedo subir el original), es cierto 300 hojas serían mucho, lo puedo dividir por regiones eso si es fácil pero uno por uno cada bimestre no

EJEMPLO 1.xlsx

publicado

Con tablas dinámicas es posible hacerlo.

Echa un vistazo al siguiente vídeo donde se explica cómo separar en hojas.

 

publicado
hace 4 minutos , Sergio dijo:

Con tablas dinámicas es posible hacerlo.

Echa un vistazo al siguiente vídeo donde se explica cómo separar en hojas.

 

Gracias por el dato, lo reviso y les comento, gracias a @Israel Cassales también por tu anterior respuesta

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.