Se pueden poner tres funciones en una Macro

buenos días, tengo esta Macro con un boton en la Hoja3 de mi libro y me funciona perfectamente para copiar la información de la Hoja3 a la Hoja4, pero requiero agregar dos funciones mas a esta, la anexo para que puedan ver mas a fondo lo que necesito.


Private Sub SALIDAS_Click()
'esta la ocupo para que copie información a otra hoja.
fila = 24
Hoja3.Select
Range("B65000").End(xlUp).Offset(1, 0).Value = "end"
Range("B5").Select
Do While ActiveCell.Value <> "end"
If ActiveCell.Value = 1 Then
Range(ActiveCell, ActiveCell.Offset(0, 4)).Copy
Hoja4.Cells(fila, 1).PasteSpecial Paste:=xlValues
fila = fila + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.ClearContents
Hoja4.Select
End Sub


lo que necesito agregar a este botón es que antes de agregar la información limpie el rango de la Hoja4(B24:E64), La macro que tengo copia información de las filas que contengan el numero 1, lo que también necesitaría hacer es que en la columna H me pusiera la leyenda "entregado" a todas aquellas filas que contengan el numero 1.
espero y puedas ayudarme.
saludo y bendiciones

1 respuesta

Respuesta
1

Esta sería la macro con las adecuaciones que necesitas

Private Sub SALIDAS_Click()
'esta la ocupo para que copie información a otra hoja.
fila = 24
Hoja4.Select
Range("B24:E64").ClearContents
Hoja3.Select
Range("B65000").End(xlUp).Offset(1, 0).Value = "end"
Range("B5").Select
Do While ActiveCell.Value <> "end"
If ActiveCell.Value = 1 Then
Hoja3.Cells(ActiveCell.Row, "H") = "entregado"
Range(ActiveCell, ActiveCell.Offset(0, 4)).Copy
Hoja4.Cells(fila, 1).PasteSpecial Paste:=xlValues
fila = fila + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.ClearContents
Hoja4.Select
End Sub

Saludos. Dam

experto, disculpa tanta molestia, pero no me limpia los rangos de la Hoja4(B24:E64)... como ejemplo te digo... 5 filas de mi Hoja3 tienen el numero 1 y esas filas son las que me copia al ejecutar el botón SALIDAS y hasta ahi esta correcto incluyendo la leyenda "entregado", pero luego vamos a suponer que en la siguiente operación solamente son 2 las filas con el numero 1, me copia la información de esas 2 filas pero aun me deja las tres filas con la información antes copiada. dustituye la información pero como nada más son 2 filas me deja las 3 que estaban anteriormente, es por eso que ocupaba que antes de que copiara información limpiara el rango, a mi parecer esta correcta la macro, pero no se porque no la ejecuta.

¿La hoja4 se llama "Hoja4"?

Cambia en la macro esta instrucción

Hoja4.Select

Por esta

Sheets("Hoja4").Select

Saludos. Dam

con esta solución ya quedo resuelto el problema muchas gracias, pero necesito que me ayudes (si puedes) con una cosa mas, al ejecutar la macro ya hace todo lo que quiero pero me deja la hoja al final de las filas y tengo que subir con el cursor todas (y son muchas), en esta macro como le hago para que al ejecutarla me deje de nuevo al principio? se puede hacer eso...

saludos y disculpame nuevamente.gracias

No te preocupes, con gusto te ayudo con todas las dudas, por favor, podrías finalizar estar pregunta y crear una nueva, en la nueva pregunta detalla el ejemplo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas