Macro en Excel 2000

Hola:
TengoExcel 2000 y W98
Hace unas semanas te pregunte sobre una macro, por tu respuesta y otras he conseguido la siguiente macro para convertir Pts a Euros, con la única pega de que solo convierte un rango de celdes se la hoja activa y desearía que se pudiera hacer un rango de diversos hojas del mismo libro.
Sub Euro3()
Set rango = Selection
For Each c In rango
c.Value = c.Value / 166.386
Next c
Selection.NumberFormat = _
"_-* #,##0.00 [$?-1]_-;-* #,##0.00 [$?-1]_-;_-* ""-""?? [$?-1]_-;_-@_-"
End Sub
He preguntado a Supernor y su respuesta ha sido:
Creo que no se puede hacer, he estado investigando y el problema de seleccionar varios rangos simultaneamnente es que solo te reconoce el rango de la hoja actual. Si agrupas hojas (seleccionas varias hojas, pestañas, a la vez) el problema es que se crea un array de hojas y no puedes discriminar los rangos seleecionados.
Seguramente existe algún método para solucionarlo, pero por ahora lo desconozco.
Preguntale a Valedor que es tu superexperto en VBA seguro que algo se le ocurre y dale recuerdos de mi parte.
Siento no poder ayudarte.
supernor
Bien pues siguiendo los consejos de supernor, te agradecería que me digueras si es posible o no realizar lo que deseo.
Un saludo
1

1 respuesta

Respuesta
1
Prueba este código...
Sub Euro3()
Dim c As Range
Dim ws As Worksheet
On Error Resume Next
For Each ws In ActiveWorkbook.Worksheets
ws.Activate
For Each c In Selection
c.Value = c.Value / 166.386
Next c
Selection.NumberFormat = "#,##0.00"
Next ws
End Sub
Hola Valedor:
He probado el código y efectivamente sirve para cambiar las celdas de todas las hojas de un archivo, pero el problema reside en que cambia TODAS las celdas activas de TODAS las hojas, incluso las no seleccionadas.
Existe algún método para que las hojas no seleccionadas no las modifique.
Gracias de antemano
Excel no cuenta, al menos de forma documentada, de un método para devolver u obtener las Hojas que estén seleccionadas, por lo cual, no puedes trabajar más que con la hoja activa, lo que si se puede hacer es seleccionar varias hojas desde código, lo cual nos da la opción de que desde un formulario selecciones las hojas que quiera y desde ahí, cambiar los valores de la selección en dichas hojas...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas