Un favor enorme tengo una nota de cobranza y quiero que al imprimir copie todo el rango seleccionado a la hoja dos, solo que el rango varia segun la cantidad de informacion que ingreso.
Desde ya un millon de gracias
| |||
Macro para copiar un rango de celdas en excel y pasar a hoja 2 Un favor enorme tengo una nota de cobranza y quiero que al imprimir copie todo el rango seleccionado a la hoja dos, solo que el rango varia segun la cantidad de informacion que ingreso. Desde ya un millon de gracias |
| |||
Respuesta: Macro para copiar un rango de celdas en excel y pasar a hoja 2 Está bueno 3pies, solo le falta la rutina para insertar en la hoja2, pero, seguido de la ultima fila(celda) ocupada Sub copiarypegar() 'Seleccionamos todo el área contínua de datos, desde la celda donde estamos situados Range("a3:i15").Select 'seleciona el rango especifico ActiveCell.CurrentRegion.Select 'Copiamos Selection.Copy 'Pegamos en A2 de la hoja 7 Sheets(7).Select Range("A2").Select 'el control se hará sobre la columna A, a partir de la fila While ActiveCell.Value <> "" 'Busca la ultima fila ActiveCell.Offset(1, 0).Select 'si la celda contiene datos, pasa a la fila siguiente Wend ActiveSheet.Paste Application.CutCopyMode = False Range("A2").Select End Sub
__________________ Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas http://i64.tinypic.com/rho40i.jpg |
| |||
Respuesta: Macro para copiar un rango de celdas en excel y pasar a hoja 2 Muchas gracias por sus respuestas JoaoM tengo las siguientes consultas : Mi hoja 2 tiene nombre se llama NCC como la selecciono para que copie ahi y mi rango es "a2:g21" pero al pasar los datos no toma todo el rango; por si acaso tengo una celda combinada la a3 Gracias |
| |||
Respuesta: Macro para copiar un rango de celdas en excel y pasar a hoja 2 Sub copiarypegar() 'Seleccionamos todo el área contínua de datos, desde la celda donde estamos situados Range("a3:i15").Select 'seleciona el rango especifico ActiveCell.CurrentRegion.Select 'Copiamos Selection.Copy 'Pegamos en A2 de la hoja 7 Sheets("NCC").Select Range("A2").Select 'el control se hará sobre la columna A, a partir de la fila While ActiveCell.Value <> "" 'Busca la ultima fila ActiveCell.Offset(1, 0).Select 'si la celda contiene datos, pasa a la fila siguiente Wend ActiveSheet.Paste Application.CutCopyMode = False Range("A2").Select End Sub Existe esta opcion. Para que si alguien te cambia el nombre a las hojas o posicion de ellas, coloca esto en ThisWorkbook Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'Esto se ejecutará justo unos instantes antes de guardar el fichero If Hoja1.Name <> "¿?" Then Hoja1.Name = "¿?" If Hoja2.Name <> "NCC" Then Hoja2.Name = "NCC" If Hoja3.Name <> "¿?" Then Hoja3.Name = "¿?" 'ect ect End Sub En lo rojo colocas el nombre de tus hojas. Esto por si alguien cambia el nombre de hojas, al cerrarse el libro todo vuelve como antes. Si sucede el cambio, el codigo referente a la hoja, no funciona. Para evitar eso, lo mejor es en el editor de VBA, a la izquierda selecionas la hoja, abajo le das el nombre tuyo para definitivo
__________________ Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas http://i64.tinypic.com/rho40i.jpg Última edición por JoaoM; 18/01/2011 a las 17:36 |
| |||
Respuesta: Macro para copiar un rango de celdas en excel y pasar a hoja 2 Gracias mil pro compartir tus conocimientos, esta barbaro el codigo ahora te puedo molestar con otra pregunta más ? como inserto 41 filas antes de copiar mi rango a la hoja NCC ? o sea copia el rango de mi hoja Nc a mi hoja NCC y despues de copiarlo que mi inserte automaticamente 41 filas en blanco sera que se puede ? gracias de antemano |
| |||
Respuesta: Macro para copiar un rango de celdas en excel y pasar a hoja 2 Y esas 41 filas ¿quedaran entremedio de filas ocupadas? o ¿crear 41 filas después de la última ocupada? Explícate mejor y completo para que se entienda A lo mejor no soy capaz de darte ayuda por mis escasos conocimientos pero, algún usuario conocedor podrá hacerlo Edito: Te consegui este codigo para un boton, tu verás si te sirve o no. Lo pondrás en un modulo y el comando para el boton es el primer, Sub InsertRowsAndFillFormulas_caller Este, si la celda selecionada contiene formula, la coservará y copiará la formula a las celdas siguientes creadas Cita: Si colocas en S. google esto, macro insertar filas en excel verás miles de opcionesSub InsertRowsAndFillFormulas_caller() Call InsertRowsAndFillFormulas End Sub Sub InsertRowsAndFillFormulas(Optional vRows As Long = 0) 'Agrega cantidad de lineas hacia abajo segun la celda seleccionada ' Documented: http://www.mvps.org/dmcritchie/excel/insrtrow.htm ' selección de fila basado en la celda activa Dim x As Long ActiveCell.EntireRow.Select 'Segun celda selecionada, seleciona toda la fila If vRows = 0 Then vRows = Application.InputBox(prompt:="How many rows do you want to add?", Title:="Add Rows", _ Default:=1, Type:=1) 'Por defecto presenta 1, una sola fila. Puedes decirle cuantas quieres If vRows = False Then Exit Sub End If 'si sólo quiere agregar celdas y no filas enteras, elimine EntireRow "en la siguiente línea Dim sht As Worksheet, shts() As String, i As Long ReDim shts(1 To Worksheets.Application.ActiveWorkbook.Windows(1).S electedSheets.Count) i = 0 For Each sht In _ Application.ActiveWorkbook.Windows(1).SelectedShee ts Sheets(sht.Name).Select i = i + 1 shts(i) = sht.Name x = Sheets(sht.Name).UsedRange.Rows.Count 'corrección última celda Selection.Resize(rowsize:=2).Rows(2).EntireRow.Res ize(rowsize:=vRows).Insert Shift:=xlDown Selection.AutoFill Selection.Resize(rowsize:=vRows + 1), xlFillDefault On Error Resume Next 'manejar posible error ' Agrega filas aun conservando la o las formula(s) de la(s) celda(s) celecionada Selection.Offset(1).Resize(vRows).EntireRow.Specia lCells(xlConstants).ClearContents Next sht Worksheets(shts).Select End Sub Puede que este te sea mas simple Cita: Sub Insertar_filas() ' ' Insertar el numero de filas dado por el usuario Dim a As Integer a = 0 a = InputBox("Cuantas filas quieres insertar? ") While a > 0 ActiveCell.Offset(1, 0).Range("a1").Select Selection.EntireRow.Insert a = a - 1 Wend End Sub
__________________ Las contraseñas son como la ropa interior: Nunca dejarlas donde la gente pueda verlas http://i64.tinypic.com/rho40i.jpg Última edición por JoaoM; 21/01/2011 a las 18:28 |
Etiquetas: |