No he podido copiar macro...

06/02/2004 - 15:56 por Petra | Informe spam
Hola..

No he podido copiar una macro que tengo en una hoja para
que se me ejecute en otras hojas similares del mismo
libro... Ayudenme por favor...

Gracias de antemano!!

Petra!

Preguntas similare

Leer las respuestas

#6 Petra
09/02/2004 - 14:41 | Informe spam
Hola Ignacio...

Gracias... Ejecuté la macro con las modificaciones que le
hiciste y me salen algunos errores primero decia que
habia un 'end with sin with', tambien sale error en el
comando que empieza por 'If StrConv...'

Podrias echarle un vistazo por favor???

Gracias

Petra!

Hola Petra:
La macro que aquí me pones efectivamente no puede


funcionar aunque la vayas
poniendo a cada hoja como parte de su código. Tienes que


tener en cuenta que
esta macro se ejecuta al cerrar el libro y solo figura el


nombre de una
hoja. Te he hecho una pequeña modificación para que te


funcione en todas las
hojas que contenga tu libro.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Fila As Long
For Each sh In Worksheets
For Fila = sh.Range("D65536").End(xlUp).Row To 1


Step -1
If StrConv(sh.Range("D" & Fila), vbLowerCase)


= "cobrado" Then
..Range("d" & Fila).EntireRow.Delete
Next
End With
Next
ActiveWorkbook.Save
End Sub
Esta macro la tienes que poner en ThisWorkBook.
No te olvides de borrarla si la tienes puestaa en el


codigo de alguna hoja.
Un saludo

"Petra" escribió en


el mensaje
news:c66001c3ed88$929f8990$
Hola Ignacio...

Te explico la distribucion de mi archivo: tengo 5 hojas
iguales a la que tiene la macro, se diferencian unicamente
por el nombre, pues cada una es para datos de ciudades
diferentes, los datos estan distribuidos de la misma
forma. Quiza sea importante que sepas que la macro que
vas a ver esta en 'ThisWorkbook'... Ahi te va la macro:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Fila As Long
With Worksheets("CHQ's pend. cobro")
For Fila = .Range("d65536").End(xlUp).Row To 1 Step -1
If StrConv(.Range("d" & Fila), vbLowerCase)
= "cobrado" Then .Range("d" & Fila).EntireRow.Delete
Next
End With
Me.Save
End Sub

Gracias por lo que me puedas ayudar

Slds.

Petra!!

Hola Petra:
Pon aquí en el foro la macro y le echare un




vistazo...


Copio la macro en las otras hojas y cuando cierro el




libro
solo ejecuta la macro en la hoja que la programé.


¿Se ejecuta la macro al cerrar el libro ? si es así debes


de llamar a tu
macro desde el evento WorkbookClose.

Un saludo


.





.

Respuesta Responder a este mensaje
#7 Ignacio Pérez
09/02/2004 - 17:08 | Informe spam
Hola Petra:
Perdona pero no lo habia probado, por las prisas..
ahora ya lo tienes y si no me lo dices..

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Fila As Long
For Each Sh In Worksheets
For Fila = Sh.Range("D65536").End(xlUp).Row To 1 Step -1
If StrConv(Sh.Range("D" & Fila), vbLowerCase) = "cobrado" Then
Sh.Range("d" & Fila).EntireRow.Delete
Next Fila
Next
ActiveWorkbook.Save
End Sub

Un saludo.

"Ignacio Pérez >" <ignaciopsantaella@<hotmail.com> escribió en el mensaje
news:
Hola Petra:
La macro que aquí me pones efectivamente no puede funcionar aunque la


vayas
poniendo a cada hoja como parte de su código. Tienes que tener en cuenta


que
esta macro se ejecuta al cerrar el libro y solo figura el nombre de una
hoja. Te he hecho una pequeña modificación para que te funcione en todas


las
hojas que contenga tu libro.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Fila As Long
For Each sh In Worksheets
For Fila = sh.Range("D65536").End(xlUp).Row To 1 Step -1
If StrConv(sh.Range("D" & Fila), vbLowerCase) = "cobrado" Then
.Range("d" & Fila).EntireRow.Delete
Next
End With
Next
ActiveWorkbook.Save
End Sub
Esta macro la tienes que poner en ThisWorkBook.
No te olvides de borrarla si la tienes puestaa en el codigo de alguna


hoja.
Un saludo

"Petra" escribió en el mensaje
news:c66001c3ed88$929f8990$
Hola Ignacio...

Te explico la distribucion de mi archivo: tengo 5 hojas
iguales a la que tiene la macro, se diferencian unicamente
por el nombre, pues cada una es para datos de ciudades
diferentes, los datos estan distribuidos de la misma
forma. Quiza sea importante que sepas que la macro que
vas a ver esta en 'ThisWorkbook'... Ahi te va la macro:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Fila As Long
With Worksheets("CHQ's pend. cobro")
For Fila = .Range("d65536").End(xlUp).Row To 1 Step -1
If StrConv(.Range("d" & Fila), vbLowerCase)
= "cobrado" Then .Range("d" & Fila).EntireRow.Delete
Next
End With
Me.Save
End Sub

Gracias por lo que me puedas ayudar

Slds.

Petra!!

>Hola Petra:
>Pon aquí en el foro la macro y le echare un vistazo...
>
>
>Copio la macro en las otras hojas y cuando cierro el libro
>solo ejecuta la macro en la hoja que la programé.
>
>
>¿Se ejecuta la macro al cerrar el libro ? si es así debes
de llamar a tu
>macro desde el evento WorkbookClose.
>
>Un saludo
>
>
>.
>


Respuesta Responder a este mensaje
#8 Petra
10/02/2004 - 15:47 | Informe spam
Hola Ignacio

Puse la macro que me mandaste y me saca el siguiente
error: 'Error de compilacion... Next sin For' en 'Next
Fila'...

Perdona tanta molestadera con esto... Gracias por tu
inapreciable ayuda...

Petra!

Hola Petra:
Perdona pero no lo habia probado, por las prisas..
ahora ya lo tienes y si no me lo dices..

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Fila As Long
For Each Sh In Worksheets
For Fila = Sh.Range("D65536").End(xlUp).Row To 1


Step -1
If StrConv(Sh.Range("D" & Fila), vbLowerCase)


= "cobrado" Then
Sh.Range("d" & Fila).EntireRow.Delete
Next Fila
Next
ActiveWorkbook.Save
End Sub

Un saludo.

Respuesta Responder a este mensaje
#9 Ignacio Pérez
10/02/2004 - 17:54 | Informe spam
Hola Petra:
La línea que comienza con If StrConv(Sh.Range.. al pegarla aquí en el
foro se divide en dos y provoca el error, debes de poner toda la línea
seguida hasta la palabra Delete
Espero que esta vez si te funcione (este parto esta siendo difícil...)
Un saludo

"Petra" escribió en el mensaje
news:e05d01c3efe4$c5a28410$
Hola Ignacio

Puse la macro que me mandaste y me saca el siguiente
error: 'Error de compilacion... Next sin For' en 'Next
Fila'...

Perdona tanta molestadera con esto... Gracias por tu
inapreciable ayuda...

Petra!

>Hola Petra:
>Perdona pero no lo habia probado, por las prisas..
>ahora ya lo tienes y si no me lo dices..
>
> Private Sub Workbook_BeforeClose(Cancel As Boolean)
> Dim Fila As Long
> For Each Sh In Worksheets
> For Fila = Sh.Range("D65536").End(xlUp).Row To 1
Step -1
> If StrConv(Sh.Range("D" & Fila), vbLowerCase)
= "cobrado" Then
>Sh.Range("d" & Fila).EntireRow.Delete
> Next Fila
> Next
> ActiveWorkbook.Save
>End Sub
>
>Un saludo.
>
Respuesta Responder a este mensaje
#10 Petra
10/02/2004 - 20:57 | Informe spam
GRACIAS GRACIAS GRACIAS!!!!

Por fin me funcionó. De este dificil y tormentoso
parto salió algo espectacular...

Gracias nuevamente por tu ayuda!!

Petra
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida