Foros del Web » Programación para mayores de 30 ;) » Programación General »

Macros Exel.. bucle ¿¿¿¿¿¿Como lo hago????

Estas en el tema de Macros Exel.. bucle ¿¿¿¿¿¿Como lo hago???? en el foro de Programación General en Foros del Web. Buenas amigos... Bueno me animado a preguntar ya que ve que hay mucha gente que me podria echar una mano con el tema. es estado ...
  #1 (permalink)  
Antiguo 28/07/2014, 15:40
 
Fecha de Ingreso: julio-2014
Ubicación: Ecuador
Mensajes: 1
Antigüedad: 9 años, 8 meses
Puntos: 0
Macros Exel.. bucle ¿¿¿¿¿¿Como lo hago????

Buenas amigos...
Bueno me animado a preguntar ya que ve que hay mucha gente que me podria echar una mano con el tema.
es estado trabajando con excel adentrandome en el mundo de macros a lo cual implemente macros en un archivo de uso diario...
-->en la hoja1 tengo una base de tados y en la hoja2 es un formato para imprimir
-->en la hoja1 tengo los datos que van desde A2;J2 y va en vertical A3;J3 y asi sucesivamente, lo que quiero es que esos datos que van desde A2;J2 se imprimaran en unas celdas especificas en la hoja2, he usad este codigo pero no logro poner un bucle que vaya de fila en fiala es decir copiar los datos que tengo en A2;J2 en las celdas seleccionadas y siga para abajo A2;j2 ---->A3;J3---->A4;J4
les dejo el codigo usado y dejare el archivo a ver si me dan una manito con esto



Sub pasandoDatos()
'macro
Dim filault As Long 'esta será la primer fila libre para acumular los datos
filault = Sheets("Hoja2").Range("A65536").End(xlUp).Row + 1

'luego pasarás cada celda de tu hoja 1 a las distintas col de la fila libre
Sheets("Hoja2").Range("AF2") = Sheets("Hoja1").Range("F2")
Sheets("Hoja2").Range("Q20") = Sheets("Hoja1").Range("A2")
Sheets("Hoja2").Range("T40") = Sheets("Hoja1").Range("H2")
Sheets("Hoja2").Range("E45") = Sheets("Hoja1").Range("C2")
Sheets("Hoja2").Range("E116") = Sheets("Hoja1").Range("A2")
Sheets("Hoja2").Range("E119") = Sheets("Hoja1").Range("B2")
Sheets("Hoja2").Range("L195") = Sheets("Hoja1").Range("C2")
Sheets("Hoja2").Range("G233") = Sheets("Hoja1").Range("B2")

'preparar la hoja para la impresión
With ActiveSheet.PageSetup
.PrintArea = "A1, AM252 "
.Orientation = xlPortrait 'xlLandscape
.PaperSize = xlPaperA4 'hoja A4
.BlackAndWhite = False 'incluir colores o no
.FitToPagesWide = 1 'reduce el tamaño de la hoja (ancho)
.FitToPagesTall = 1 'reduce el tamaño de la hoja (alto)
.CenterHorizontally = False 'centrar horizontalmente
.CenterVertically = False 'centrar verticalmente-
End With

'imprimir las hojas seleccionadas (1 copias)
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

End Sub




https://mega.co.nz/#!psg02TrB!whlfLYvnBScVRRz9bpQYBK2mJotl_U_sqc4CMTW IDjE
  #2 (permalink)  
Antiguo 01/09/2014, 19:18
 
Fecha de Ingreso: agosto-2014
Ubicación: Santiago
Mensajes: 15
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Macros Exel.. bucle ¿¿¿¿¿¿Como lo hago????

Creo que lo más simple es no usar range, sino que usar cells. Cells utiliza números en lugar de la notacion letra número como A1, B1,B2. Asi por ejemplo range("b3") es equivalente a cells(3,2) Aqui escribi el código que necesitas, no lo he compilado, asi que a lo mejor no corre por alguna error menor.

'Columna 10 corresponde a j
ultima_columna=10

filault = Sheets("Hoja2").Range("A65536").End(xlUp).Row + 1

for columna_j=1 to ultima_columna
for fila_i=1 to filault
sheets("Hoja2").cells(fila_i,columna_j)=sheets("Ho ja1").cells(fila_i,columna_j)
next fila_i
next columna_j

Etiquetas: programacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:24.