Buenos días Elsa Matilde Siento una gran admiración por usted Mi consulta es: Quiero pegar datos de la hoja1 a la hoja2. Necesito una macro donde yo le diga que pegue los datos en la hoja2 a partir del rango tal y que se pueda modificar. Muchas Gracias
Hay muchas maneras de copiar 'rangos': por filas, col, celdas, etc No comprendo si el rango variable es el que se copia o a partir de donde se pega. Bueno, asumí que el rango variable será a partir de dónde se copia. Ese dato se puede obtener como contenido de otra celda o por InputBox En el ejemplo copiaré los datos a partir del rango que me indica la celda D1 y se copiará en la hoja 2 a partir de la primer celda libre de la col A. Todas estas referencias deberás ajustarlas a tu libro. En un módulo que insertarás en el Editor, copia esto: Sub copiaRangos() Dim inicio As String Dim filalibre As Integer 'busco la primer fila libre de la hoja2 Sheets("Hoja2").Select filalibre = ActiveSheet.Range("A65536").End(xlUp).Row + 1 'la primer celda del rango se obtiene en D1 Sheets("Hoja1").Select inicio = Range("D1").Value 'se copian las filas desde inicio hasta la primer celda vacía Range(inicio, Range(inicio).End(xlDown)).Copy Destination:=Sheets("Hoja2").Cells(filalibre, 1) End Sub Si el rango lo ingresas por InputBox tendrás que reemplazar la instrucción inicio= ... por esta otra: inicio = InputBox("Ingrese primer celda a copiar") Espero puedas aplicar esto a lo tuyo, sino me volvés a contactar con datos más precisos. Saludos Elsa PD) No te pierdas mi Manual con las 300 Macros explicadas en español. Descarga la Demo gratis desde: http://es.geocities.com/lacibelesdepunilla/manual
Tienes razón soy yo quien no me hago entender y soy nuevo. 1-Quiero pegar los datos de la hoja1 contenidos en el rango a2:a100 en la hoja2 a partir de la cela a2 Gracias. Por favor te recomiendo mi segunda pregunta. JCOA
Te ajusté la rutina a esos datos: Fíjate que utilizo una variable 'filalibre' para indicar cuál es la primer fila sin datos en la Hoja2. Pero si siempre quieres que se copie en A2 (sobrescribiendo lo que tenga) reemplaza filalibre por 2 en la instrucción Copy. Si algo no queda aclarado seguimos tratando. Saludos Elsa Sub copiaRangos() Dim inicio As String Dim filalibre As Integer 'busco la primer fila libre de la hoja2 Sheets("Hoja2").Select filalibre = ActiveSheet.Range("A65536").End(xlUp).Row + 1 Sheets("Hoja1").Select 'se copian las filas del rango Range("A2:A100").Copy Destination:=Sheets("Hoja2").Cells(filalibre, 1) End Sub