¿Macro para realizar un informe en excel?

Estoy aprendiendo a crear macros par agilizar tareas en excel.
Estoy realizando un pequeño programa para manejar una bodega, ya casi termino, estoy parado por no encuentro la manera de generar un informe con información capturada en una hoja.
Tengo una macro que lo que hace es preguntar el mes que se desea informar y copia toda la información de ese mes.
Sub Copiando()
'copia los registros de la hoja Movimientos 2008
Dim nromes As Integer, mes As Integer
Dim filadestino As Integer
Dim dato As String
'la variable nromes indica el mes de los registros a copiar
nromes = InputBox("Dame el mes que quieres capturar", "Generador de informes")
'variable que indica a partir de qué fila se copiará
filadestino = 2
'busca los registros cuya fecha tiene por mes el valor de la variable nromes
Sheets("MOVIMIENTOS 2008").Activate
Range("A2").Select
While ActiveCell.Value <> ""
dato = ActiveCell.Value
'obtiene el número de mes del campo fecha
mes = Month(dato)
If mes = nromes Then
Selection.EntireRow.Copy
ActiveSheet.Paste Destination:=Worksheets("Informe").Cells(filadestino, 1)
filadestino = filadestino + 1
End If
ActiveCell.Offset(1, 0).Select
Wend
Application.CutCopyMode = False
End Sub
En la hoja de "Movimientos 2008" tiene 20 columnas de información, ahora lo que busco es que nada más copie 9 columnas de dicha información, estas columnas no son consecutivas y las coloque en la hoja "Informe".

1 respuesta

Respuesta
1
Una vez que encontraste el dato a copiar, estás utilizando la instrucción que te copia toda la fila:
Selection. EntireRow. Copy
ActiveSheet.Paste Destination:=Worksheets("Informe").Cells(filadestino, 1)
Aquí es donde debés reemplazar estas 2 instrucciones por las siguientes:
'dato de la col A se copia en col 1
Selection.Copy destination:= Worksheets("Informe").Cells(filadestino, 1)
'dato de la col C se copia en col 2
selection.offset(0,2).copy destination:= Worksheets("Informe").Cells(filadestino, 2)
'dato de la col H se copia en col 3
selection.offset(0,7).copy destination:= Worksheets("Informe").Cells(filadestino, 3)
'repetir hasta completar el resto de col
Fíjate que el offset es el que te indica de qué col debe tomar el dato, a partir de A
Saludos y no olvides finalizar la consulta
Elsa
PD) Para aprender macros a fondo nada mejor que mi manual 400MacrosPlus
http://es.geocities.com/lacibelesdepunilla/manuales

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas