Excel - Repetir una macro en varias hojas de un libro

 
Vista:

Repetir una macro en varias hojas de un libro

Publicado por Miguel (3 intervenciones) el 22/02/2008 12:14:09
Hola un saludo a todos.. espero que podais ayudarme con un problema que tengo en una macro, la macro es la sigueinte

Sub area()

' Cambiar area

Dim Hoja As Worksheet

Columns("I:I").Select
Selection.Replace What:="BOMBEROS", Replacement:="1", LookAt:=xlWhole, _
SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="CONSULTAS", Replacement:="2", LookAt:= _
xlWhole, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False _
, ReplaceFormat:=False
End Sub

Quiero reemplazar en una hoja de un libro unos valores, esta macro me lo hace, va a la columna correspondiente y modifica los valores, el problema esta que en el libro hay 3 o 4 hojas y quiero que repita la misma macro en todas la hojas, como la tengo ahora mismo solo lo hace en la hoja activa pero no en las demas... que debo hacer?

Gracias y a todos de antemano por vuestra ayuda. Un cordial Saludo.

Miguel.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Repetir una macro en varias hojas de un libro

Publicado por Kaiser (38 intervenciones) el 22/02/2008 13:01:55
Para esto debes utilizar un ciclo ya sea While, Do, For, yo te recomiendo que utilices este último y para ello te voy a dar un ejemplo para que lo puedas implementar en tu macro.

1
2
3
4
5
6
7
Dim i As Byte
For i = 1 To ThisWorkbook.Sheets.Count
'A continuación deberás escribir el código de tu macro
   ThisWorkbook.Sheets(i).Select
   Range("A:A").Value = "KAISER"
'Aquí debe terminar tu macro
Next

Si pruebas estas líneas de código en una macro te darás cuenta que, lo que hace es escribir en todas las celdas de la columna A de todas las hojas del libro la palabra KAISER.

Espero te sirva...
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Repetir una macro en varias hojas de un libro

Publicado por Miguel (3 intervenciones) el 22/02/2008 13:30:21
Gracias por tu respuesta Kaiser... he probado tu macro y sigo en las mismas no se el motivo pero no me cambia mas que los valores de la hoja activa... estoy haciendo pruebas pero no encuentro la forma.. si se te ocurre alguna otra cosa te lo agracezco un cordial saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Repetir una macro en varias hojas de un libro

Publicado por Kaiser (38 intervenciones) el 22/02/2008 14:54:22
Lo que yo creo y lo más probable que te haya sucedido es que no incluiste la línea ThisWorkbook.Sheets(i).Select, esta es muy impoortante ya que se encarga de ir cambiando de hoja. Tu macro debería ser así.

1
2
3
4
5
6
7
8
9
10
11
12
13
For i = 1 To ThisWorkbook.Sheets.Count
 
'Con esto se va cambiando automáticamente de hoja una vez termine el proceso.
   ThisWorkbook.Sheets(i).Select
 
   Columns("I:I").Select
   Selection.Replace What:="BOMBEROS", Replacement:="1", LookAt:=xlWhole, _
   SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
   ReplaceFormat:=False
   Selection.Replace What:="CONSULTAS", Replacement:="2", LookAt:= _
   xlWhole, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False _
   , ReplaceFormat:=False
Next


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Repetir una macro en varias hojas de un libro

Publicado por Miguel (3 intervenciones) el 29/02/2008 11:29:50
Hola de nuevo, muchas gracias por tu respuesta, estoy aprendiendo mucho.

Te comento lo que me ha ocurrido, en efecto olvide poner la linea que me indicabas, pero una vez puesta me sale un error de depuracion en dicha linea al ejecutar la macro. La macro me quedo así, he realizado varias pruebas pero no consigo que me funcione... seguro que olvide algo importante... gracias de nuevo.
Esta es mi macro si se te ocurre algo por favor te agradezco que me lo digas.. un saludo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Sub area1()
 
' Cambiar area
 
Dim i As Byte
For i = 1 To ThisWorkbook.Sheets.Count
 
ThisWorkbook.Sheets(i).Select
 
    Columns("I:I").Select
    Selection.Replace What:="BOMBEROS", Replacement:="1", LookAt:=xlWhole, _
        SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Selection.Replace What:="CONSULTAS", Replacement:="2", LookAt:= _
        xlWhole, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False _
        , ReplaceFormat:=False
     Selection.Replace What:="INACTIVA", Replacement:="3", LookAt:= _
        xlWhole, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False _
        , ReplaceFormat:=False
    Selection.Replace What:="NO PROCEDENTES", Replacement:="4", LookAt:= _
        xlWhole, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False _
        , ReplaceFormat:=False
    Selection.Replace What:="OTROS", Replacement:="5", LookAt:= _
        xlWhole, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False _
        , ReplaceFormat:=False
    Selection.Replace What:="POLICIA", Replacement:="6", LookAt:= _
        xlWhole, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False _
        , ReplaceFormat:=False
    Selection.Replace What:="PRUEBA", Replacement:="7", LookAt:= _
        xlWhole, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False _
        , ReplaceFormat:=False
    Selection.Replace What:="SANITARIOS", Replacement:="8", LookAt:= _
        xlWhole, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False _
        , ReplaceFormat:=False
    Selection.Replace What:="TRAFICO", Replacement:="9", LookAt:= _
        xlWhole, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False _
        , ReplaceFormat:=False
    Range("I1").Select
 
 Next
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Repetir una macro en varias hojas de un libro

Publicado por ricardo (1 intervención) el 14/04/2013 19:30:48
hola : tengo una consulta estoy diseñando planilla para el conteo de horas de cada quincena de trabajo , en el cual estoy utilizando un libro de excel con userform para agregar los datos. tengo 12 hojas ,en cada hojas hay dos quincenas, La idea es una ves ingresados los datos en el userform al hacer clik en el comamdboton vaya ingresando a la primer celda vacia de la planilla y una vez completada la planilla del mes se pase automaticamente al siguiente hoja,y seguir ingresando datos,: probe con el ciclo "for next " pero cuando presiono el comandbuton carga el datos para todas la planillas, y no de a uno como quiero yo . agredeceria la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Repetir una macro en varias hojas de un libro

Publicado por Camla (1 intervención) el 03/09/2015 22:32:33
Hola Kraiser!

Quería darte las gracias... funcionó de maravilla!!

Me salvaste en el trabajo.

tnks
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Repetir una macro en varias hojas de un libro

Publicado por Osvaldo (1 intervención) el 02/06/2016 00:44:04
Camla, Kaiser

por fin como quedo la macro ya que la ejecute y me sale error en esta linea

ThisWorkbook.Sheets(i).Select
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar