UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se puede subir archivos al foro, favor de hacerlo en servidor externo (Dropbox, Drive...) y dejan link. "Sin archivo no hay respuestas"

Favor de leer "Todos los temas" Click aquí.

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1RESUELTO Eliminar macro de hojas copiadas el 17/07/18, 12:55 pm

JOSEDAVILA


Hola, tengo esta macro que concentra las hojas de varios libros y las pega en un solo libro por pestañas, sin embargo las hojas que intenta concentrar traen macros desarrollaas, y quizá con errores, por eso me generan error en el proceso de unificar hojas.

Código:
[color=#000000]         
Sub Open_Files()[/color]
Dim Hoja As Object

    Application.ScreenUpdating = False
      'Definir la variable como tipo Variante
      Dim X As Variant
      'Abrir cuadro de dialogo
      X = Application.GetOpenFilename _
          ("Excel Files (*.xls), *.xls", 2, "Abrir archivos", , True)
        'Validar si se seleccionaron archivos
        If IsArray(X) Then ' Si se seleccionan
          'Crea Libro nuevo
          Workbooks.Add
          'Captura nombre de archivo destino donde se grabaran los archivos seleccionados
          A = ActiveWorkbook.Name
         
        '*/********************
      For y = LBound(X) To UBound(X)
      Application.StatusBar = "Importando Archivos: " & X(y)
        Workbooks.Open X(y)
        b = ActiveWorkbook.Name
          For Each Hoja In ActiveWorkbook.Sheets
            .Parent.VBProject.VBComponents (.CodeName)
            .CodeModule.DeleteLines 1, .CodeModule.CountOfLines
            Hoja.Copy after:=Workbooks(A).Sheets(Workbooks(A).Sheets.Count)
          Next
          Workbooks(b).Close False
      Next
      Application.StatusBar = "Listo"
      Call Unir_Hojas
    End If
    Application.ScreenUpdating = False
  End Sub
Sub Unir_Hojas()
Dim Sig As Byte, Eliminar As Boolean
    For Sig = 2 To Worksheets.Count
        Worksheets(Sig).UsedRange.Copy _
        Worksheets(1).Range("a1000000").End(xlUp).Offset(1)
    Next
      Application.DisplayAlerts = False
       
    For Sig = 2 To Worksheets.Count
        Worksheets(2).Delete
    Next
Application.DisplayAlerts = True

End Sub

integré este código para eliminar las macros sin embargo me tilda error
.Parent.VBProject.VBComponents (.CodeName)
.CodeModule.DeleteLines 1, .CodeModule.CountOfLines


alguien pudiera ayudarme?

2RESUELTO Re: Eliminar macro de hojas copiadas el 18/07/18, 12:46 am

Igtelo

avatar
Hola José.

Sube 2 archivos de los cuales se va a concentrar la información, "supongo" que todas las hojas tienen la misma estructura (encabezados, cantidad de columnas, etc.).Dichos archivos que sólo tengan unas cuantas filas y con 2 o 3 hojas es más que suficiente.

La macro para "unir hojas" no creo que sea funcional ya que te copia todo y después tienes que quitar encabezados...

Saludos
Ignacio Téllez
P.d: Sube siempre archivos para no estar "suponiendo".

3RESUELTO Re: Eliminar macro de hojas copiadas el 18/07/18, 11:17 am

JOSEDAVILA


buen día; anexo el link de algunos archivos muestra 
https://drive.google.com/open?id=18_-QHzWn65FzuKgTczZmDaUE8SDdcGBZ

en tu pregunta anterior, si buscamos códigos ejemplo en las aportaciones de los demás usuarios, si entendemos el funcionamiento de las macros, no somos expertos tengo un par de semanas en estar estudiando Macros, hicimos un cambio en el código, sin embargo no funciona pues nos genera el mismo error por las macros que contienen los archivos

este es el código modificado
Código:
Public Sub Prueba()
Dim appExcel As Excel.Application
Dim wbLibroOrigen As Workbook, wbLibroDestino As Workbook
Dim shtHojaOrigen As Worksheet, shtHojaDestino As Worksheet
Dim fdDialogo As FileDialog, strRutas() As String, lngI As Long

On Error Resume Next
Set appExcel = New Excel.Application
Set fdDialogo = appExcel.FileDialog(msoFileDialogFilePicker)
Set wbLibroDestino = ThisWorkbook
With fdDialogo
    .Title = "Seleccione los archivos de Excel"
    .AllowMultiSelect = True
    .Filters.Clear
    .Filters.Add "Archivos de Excel (.xlsx; .xls)", "*.xlsx; .xls"
    If .Show = True Then
        For lngI = 0 To .SelectedItems.Count
            ReDim Preserve strRutas(lngI)
            strRutas(lngI) = .SelectedItems(lngI)
            Debug.Print strRutas(lngI)
        Next lngI
    End If
End With


For lngI = LBound(strRutas) To UBound(strRutas)
    If strRutas(lngI) <> "" Then
        Set wbLibroOrigen = appExcel.Workbooks.Open(strRutas(lngI), , True)
        Set shtHojaOrigen = wbLibroOrigen.Worksheets(1)
        Set shtHojaDestino = wbLibroDestino.Worksheets.Add
        shtHojaDestino.Name = shtHojaOrigen.Name
        shtHojaOrigen.Copy
        shtHojaDestino.Paste
        wbLibroOrigen.Close False
        Set shtHojaDestino = Nothing
        Set shtHojaOrigen = Nothing
        Set wbLibroOrigen = Nothing
    End If
Next lngI

wbLibroDestino.Save

Set fdDialogo = Nothing
Set appExcel = Nothing
End Sub

anexé 3 archivos, son completmente iguales, lo que requiero es unir la hoja 1 de cada libro en uno solo a partir de la hoja 2

4RESUELTO Re: Eliminar macro de hojas copiadas el 18/07/18, 01:39 pm

Igtelo

avatar
José.

Tus archivos están protegidos tanto en hojas como en código VBA, así no es posible ayudarte. Lee recomendaciones para hacer preguntas.
Ya que hayas desprotegido, podrás adecuar las macros de estos 2 aportes que te hacen exactamente lo que requieres. 

http://www.universoexcelforo.com/t1662-concentrar-datos-de-libros-y-hojas-que-indiquemos-aporte#8296

http://www.universoexcelforo.com/t1211-copiar-hojas-o-rangos-de-varios-libros-a-uno-solo-aporte

Si los archivos no son tuyos, pide a quien te los proporciona quite las protecciones. En tutoriales también encuentras como desproteger código de vba.

Saludos
Ignacio Téllez

5RESUELTO Muchas gracias Ignacio el 18/07/18, 01:44 pm

JOSEDAVILA


si son de nosotros los archivos, verificaré con el creador para que elimine la protección

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.