Macro para copiar rango de celdas en otra hoja...

Fijate que tengo este problema logra hacer esta macro con la ayuda de varios expertos para poder copiar la hoja completa pero me he dado cuenta que se vuelve muy pesado ya que copia también los botones etc... Quisiera ver si me puedes ayudar en copiar solo un cierto rango... Mira esta es la macro..

Sub recibos()
On Error Resume Next

' La celda G7 es el numero de folio ejemplo, 90 y le sumo 1 para para que sea 91 cuando ejecutemos'
ActiveSheet.Range("G7").Value = ActiveSheet.Range("G7").Value + 1
ActiveWorkbook.Sheets("GENERAL").Copy _
after:=ActiveWorkbook.Sheets("GENERAL")
'copiamos la hoja completa ya con el folio incrementado ejemplo 91'

ActiveSheet.Name = ActiveSheet.Range("G7")

'le asigno el nombre del folio a la hoja para luego poder usarla en mi inventario'

'guardo'

ActiveWorkbook.Sabe
End Sub

El problema amigo es que es muy pesado luego el archivo ya que por libro se generan 150 folios y copiados con los botones que tienen las macros se vuelve muy pesado quisiera poder copiar la hoja pero sin lo botones mira te mando la foto...

1 respuesta

Respuesta
1

Si activa la grabadora de macros y crea una nueva hoja... luego copia solo los valores de las columnas desde A hasta H en esa hoja...

Obtendras un codigo como este

Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Hoja1").Select
Columns("A:H").Select
Selection.Copy
Sheets("Hoja4").Select
ActiveSheet.Paste

Analizando el código se puede adaptar a tu situacion

Sub recibos()

On Error Resume Next

ActiveSheet.Range("G7").Value = ActiveSheet.Range("G7").Value + 1 ' incrementas valor

nombre= ActiveSheet.Range("G7") ' obtenemos el nombre de la nueva hoja antes de crear la copia

hojaoriginal = activesheet.name ' obtenemos el nombre de la hoja original para poder regresar despues

Sheets.Add After:=ActiveWorkbook.Sheets("GENERAL") ' crea la nueva hoja EN BLANCO

ActiveSheet.Name = nombre ' le damos el nombre guardado

Sheets(hojaoriginal).activate ' regresamos a la hoja original

Columns("A:H").Select
Selection. Copy ' copiamos

Sheets(nombre). Activate ' regresamos a la hoja nueva

ActiveSheet. Paste

'guardo'
ActiveWorkbook. Sabe
End Sub

muchas gracias lo resolví de esta forma mira...

Sub recibos()
On Error Resume Next
ActiveSheet.Range("G7").Value = ActiveSheet.Range("G7").Value + 1
ActiveWorkbook.Sheets("GENERAL").Copy _
after:=ActiveWorkbook.Sheets("GENERAL")
ActiveSheet.Name = ActiveSheet.Range("G7")
Sheets("GENERAL").Activate
ActiveWorkbook.Sheets("GENERAL").Range("D10:E24") = 0
ActiveWorkbook.Sheets("GENERAL").Range("B7,B8").ClearContents
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas