Copiar en hoja nueva y crear siempre la columna B para copiar datos
Tengo el siguiente código que realiza lo siguiente:
-Copia de un libro a otro en función de una celda.
-Si la hoja no existe el crea la hoja.
-Una vez que crea la hoja copia los datos de una hoja oculta.
En este código la copia de la nueva información siempre la hace en la siguiente columna, es decir si existe información en la columna C la copia en la D.
Quisiera que por favor me ayuden para que siempre que copie nueva información cree la columna B y se copia en la nueva columna a partir de la fila 8.
De antemano muchas gracias.
'Copiar informacion de Reporte a Bitacora Sub Copiar_adjuntos() Application.ScreenUpdating = False Set l1 = ThisWorkbook Ruta = "C:\Users\z003bpca\Desktop\Bitacora\" arch = "copy_Reporte.xls" If Dir(Ruta & arch) = "" Then MsgBox "El archivo Reporte no existe en la ruta", vbCritical Exit Sub End If ' Set l2 = Workbooks.Open(Ruta & arch) Set h2 = l2.Sheets("Sheet0") Num = h2.Range("D5").Text If Num = "" Then MsgBox "La celda D5 no contiene datos", vbExclamation l2.Close False Exit Sub End If If IsNumeric(Num) Then Num = "" & Val(Num) End If ' existe = False For Each h In l1.Sheets If h.Name = Num Then existe = True Set h1 = h Exit For End If Next ' If existe = False Then l1.Sheets.Add after:=l1.Sheets(l1.Sheets.Count) Set h1 = l1.ActiveSheet 'copia de columna A de Hoja Datos Sheets("Datos").Visible = True Sheets("Datos").Columns("A").Copy h1.Columns("A") Sheets("Datos").Visible = False h1.Name = Num End If ' uc = h1.Cells(1, Columns.Count).End(xlToLeft).Column + 1 If uc < Columns("B").Column Then uc = Columns("B").Column h2.Range("O42:O104").Copy h1.Cells(1, uc) 'ajusta columnas de B en adelante a 30 h1.Columns.ColumnWidth = 30 h1.Columns("A:A").EntireColumn.AutoFit l2.Close False l1.Save Application.ScreenUpdating = True MsgBox "Copia realizada", vbInformation End Sub
1 Respuesta
Respuesta de Dante Amor
1