Roberto
2008-07-14 22:09:03 UTC
Tengo una hoja de cálculo que contiene información sobre productos de
inventario, en una columna a través de una formula se determina si hay
faltante o no. Ahora bien, estoy creando un macro que verifica que
productos es necesario adquirir o estan en el límite mínimo de manera
de crear una lista para de productos necesarios. El problema con el
macro que hice es que cuando encuentra el primer producto realiza la
copia a la otra hoja y se detiene, es decir no sigue buscando los
demas artículo que cumplan con la condición. Les agradecería la
ayuda. El macro que estoy utilizando es este:
Sub impresion()
'Revisamos las celdas con un bucle (do while-loop) para ver cual
cumple con la condición
Sheets("Inventario").Select
Range("C2").Select
Do While ActiveCell.Value <> Empty
ActiveCell.Offset(1, 0).Select
'Si se cumple la condición se copia la fila y se pega en otra hoja
If ActiveCell.Offset(0, 15).Value = "adquirir" Or ActiveCell.Offset(0,
15).Value = "límite mínimo" Then
'Se selcciona el rango a la derecha
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
ActiveCell.Select
'va a la hoja de Lista de compra
Sheets("Lista de compra").Select
Range("a65536").Select
' Luego va a la última celda
Selection.End(xlUp).Select
' Por último se dezplaza una posición hacia abajo
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Selection.Interior.ColorIndex = xlNone
Exit Sub
End If
Loop
Sheets("Hoja1").Select
End Sub
Gracias de antemano
Roberto
inventario, en una columna a través de una formula se determina si hay
faltante o no. Ahora bien, estoy creando un macro que verifica que
productos es necesario adquirir o estan en el límite mínimo de manera
de crear una lista para de productos necesarios. El problema con el
macro que hice es que cuando encuentra el primer producto realiza la
copia a la otra hoja y se detiene, es decir no sigue buscando los
demas artículo que cumplan con la condición. Les agradecería la
ayuda. El macro que estoy utilizando es este:
Sub impresion()
'Revisamos las celdas con un bucle (do while-loop) para ver cual
cumple con la condición
Sheets("Inventario").Select
Range("C2").Select
Do While ActiveCell.Value <> Empty
ActiveCell.Offset(1, 0).Select
'Si se cumple la condición se copia la fila y se pega en otra hoja
If ActiveCell.Offset(0, 15).Value = "adquirir" Or ActiveCell.Offset(0,
15).Value = "límite mínimo" Then
'Se selcciona el rango a la derecha
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
ActiveCell.Select
'va a la hoja de Lista de compra
Sheets("Lista de compra").Select
Range("a65536").Select
' Luego va a la última celda
Selection.End(xlUp).Select
' Por último se dezplaza una posición hacia abajo
ActiveCell.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Selection.Interior.ColorIndex = xlNone
Exit Sub
End If
Loop
Sheets("Hoja1").Select
End Sub
Gracias de antemano
Roberto