Insertar filas en un bloque de manera automatica

26/06/2006 - 22:49 por Isaac | Informe spam
Tengo un bloque de datos en la "Hoja2" que va desde "a1" hasta "m5", la fila
"1" tiene los encabezados de los datos, si desde la hoja1 tengo en la celda
"B10" el valor que representa el numero de filas que deseo insertar en el
bloque A1:M5 llamado con el nombre de "BASE", por ejemplo si deseo insertar
una fila, solome posiciono en hoja2 celda a2 inserto una fila, regreso a a
hoja1 y copio los datos que quiero en hoja2 celda a2, despues ordeno y
listo. Mi problema es que quiero que si en la celda B10 de la hoja1 esta el
valor 2 que se inserten dos, si esta 3 pues tres, y asi sucesivamente.espero
Puedan ayudarme.

Sub MiMacro()
'
' a Macro
'

'
Sheets("Hoja2").Select
Range("A2").Select
Selection.EntireRow.Insert
Sheets("Hoja1").Select
Range("A10:M10").Select
Selection.Copy
Sheets("Hoja2").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A2").Select
End Sub
 

Leer las respuestas

#1 Héctor Miguel
27/06/2006 - 07:33 | Informe spam
hola, Isaac !

... bloque de datos en la "Hoja2" que va desde "a1" hasta "m5", la fila "1" tiene los encabezados de los datos
... desde la hoja1 tengo en la celda "B10" el valor que representa el numero de filas que deseo insertar en el bloque A1:M5
... si deseo insertar una fila... en hoja2 celda a2 inserto una fila regreso a hoja1 y copio los datos... despues ordeno y listo.
... quiero que si en la celda B10 de la hoja1 esta el valor 2 que se inserten dos, si esta 3 pues tres, y asi sucesivamente...



1) por el codigo que expones [aparentemente]... siempre copias de hoja1 a hoja2 el rango 'A10:M10' ['B10' esta incluido] -?-
por lo cual, no es muy claro si ESE mismo rango es el que debiera copiarse 'al resto' de las filas insertadas en hoja2... -?-
[cuando 'B10' de hoja1 tenga un valor mayor a 1, que seria el numero de filas a insertarse en hoja2 a partir de 'A2'] -???-

2) si el supuesto anterior es incorrecto... [supongo que ya comentaras los detalles que se han quedado en el tintero] :))
prueba con una macro +/- como la siguiente [asumiendo que SIEMPRE la vas a ajecutar desde hoja1]:

Sub Inserta_y_copia()
With Worksheets("hoja2").Range("a2")
.Resize([b10]).EntireRow.Insert
.Offset(-[b10]).Resize(, 13).Value = [a10:m10].Value
If [b10] > 1 Then .Offset(-[b10]).Resize(, 13) _
.AutoFill .Offset(-[b10]).Resize([b10], 13), xlFillCopy
.Sort Key1:=.Cells(1), Order1:=xlAscending, Header:=xlYes
End With
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ el codigo expuesto __
Sub MiMacro()
Sheets("Hoja2").Select
Range("A2").Select
Selection.EntireRow.Insert
Sheets("Hoja1").Select
Range("A10:M10").Select
Selection.Copy
Sheets("Hoja2").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A2").Select
End Sub

Preguntas similares