Macro copiar y reemplazar varios datos en varias hojas a la vez
Tengo un 100 archivos de excel abiertos y en la celda bk tengo los siguientes datos HIJO(A), NIETO(A), SOBRINO(A) HERMANO(A), Lo que necesito hacer es buscar en todos estos archivos y reemplazar HIJO(A) por HIJO (A) darle espacio a la a y asi necesito hacer con nieto darle espacio a la (A)
1 respuesta
Pregunto la hoja en donde esta el archivo siempre tiene el mismo nombre, ¿o por lo menos al momento de correr la macro es la hoja que esta activa?
Los datos a modificar están en una celda especifica, o están en varias celdas dentro de una columna.
Haber el archivo donde voy a copiar lo que necesito siempre tiene el mismo nombre y a donde voy a copiar si tiene diferentes nombre ejemplo de donde voy a copiar se llama clientes y a los que voy a copiar se llama clientes1, clientes 2, otra cosa para aclarar yo copio una fila de A1 a CS1 y en los otros archivos también copio en esa misma posicion
Voy a tratar de exponer lo que entiendo de tus necesidades:
1) Tengo 100 libros, los cuales todos están abiertos
2) Tengo unos datos como por ejemplo HIJO(A), que necesito cambiarlo a HIJO (A).
3) Este texto lo ubico en las celdas del rango A1 hasta CS1 de las hojas activas de los 100 libros
4) Necesito que el cambio sea automático, porque me demoro mucho tiempo para ir de uno en uno cambiando.
¿Todo es correcto? Es lo que necesitas, de no ser así desarrolla u poco más tu pregunta
hola hay unas partes claras mira yo tengo el siguiente
código que me cambia esto por ejemplo hijo(a) por hijo (a) y asi con otros yo
los tengo en macros independientes por que en la celda que le digo vienen
varios datos hijo(a), nieto(a) y mas como le digo yo ya tengo una macro pero me
toca que ejecutarlo por cada parámetro le voy a enviar las macros y me puede
decir como las puedo meter todas en una sola para asi ejecutarla una por todas
ahi adentro.
MACRO CAMBIA HIJO(A) POR HIJO (A)
Public libro12
Sub LLAMAMACRO1()
libro1 = ActiveWorkbook.Name
For Each wb In Workbooks
wb.Activate
Call Macro1
Next
End Sub
Sub Macro1()
Cells.Replace What:="HIJO(A)", Replacement:="HIJO (A)",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
MACRO CAMBIA NIETO(A) POR NIETO(A)
Public libro13
Sub LLAMANIETO()
libro1 =
ActiveWorkbook.Name
For Each wb In Workbooks
wb.Activate
Call NIETO
Next
End Sub
Sub NIETO()
Cells.Replace What:="NIETO (A)", Replacement:="NIETO(A)",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Asi como estas tengo las de hermano, suegro y otras mas necesito poder ejecutar todo esto en un ciclo.,
gracias
Pues de lo que leo en tu rutina deberías colocar esta parte igual:
Public libro12
Sub LLAMAMACRO1()
libro1 = ActiveWorkbook.Name
For Each wb In Workbooks
wb.Activate
Call Macro1
Next
End Sub
Sub Macro1()
Cells.Replace What:="HIJO(A)", Replacement:="HIJO (A)",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
y de aquí en adelante deberías colocar esto por cada condición
Cells.Replace What:="NIETO(A)", Replacement:="NIETO (A)",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Gracias por tu aporte tengo otra pregunta yo tengo que copiar un encabezado de un archivo a otro te hago un ejemplo tengo un archivo llamado registro con esta información:
Nombre cliente, apellido, telefono, direccion
esta información va desde A1 hasta CS1 necesito copiar esta infromacion en otros 100 archivos que tengo abiertos en la mimas parte de a1 a cs1 es copiar y reemplazar me podrias ayudar gracias
Si la pregunta inicial fue contestada debes cerrar la pregunta ya hacer una nueva, para que cualquiera te la pueda responder, en todo caso en el caso que planteas no es con reemplazar yo lo haría con la siguiente rutina:
Sub COPIA_PEGA()
Range("A1:CS1").Copy
For Each wb In Workbooks
ActiveWindow.ActivateNext
Range("A1").Select
ActiveSheet.Paste
Next
End Sub
Como no me diste el nombre del archivo original, al momento de correr la macro el primer libro activo debe ser el original.
Hola el archivo original se llama estructura.xls que es de donde se va a copiar y el resto de los 100 archivos tiene nombre diferente.
oye me sale error de sintaxis en la parte de cells al ejecutarla macro
Sub LLAMAMACRO1()
libro1 = ActiveWorkbook.Name
For Each wb In Workbooks
wb.Activate
Call Macro1
Next
End Sub
Sub Macro1()
Cells.Replace What:="HIJO(A)", Replacement:="HIJO (A)",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace
What:="NIETO(A)", Replacement:="NIETO (A)",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Esta parte va así:
Sub Macro1()
Cells.Replace What:="HIJO(A)", Replacement:="HIJO (A)", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Cells.Replace What:="NIETO(A)", Replacement:="NIETO (A)", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Experto te doy 5 estrellas me funciono de maravilla, me podrías ayudar con lo que me habías dicho con este código que me diste el archivo original de donde se va a copiar se llama registro inicial los otros tiene diferentes nombre necesito copiar ya sabes desde a1 hasta cs1 a los otros archivos en la misma intentar a 1 hasta cs1 dime que le hace falta al código, otra cosa dime si necesito poner el archivo de donde se va a copiar en la misma carpeta donde tengo los otros 100 gracias.
Sub COPIA_PEGA()
Range("A1:CS1").Copy
For Each wb In Workbooks
ActiveWindow.ActivateNext
Range("A1").Select
ActiveSheet.Paste
Next
End Sub
Experto te doy 5 estrellas me funciono de maravilla, me podrías ayudar con lo que me habías dicho con este código que me diste el archivo original de donde se va a copiar se llama registro inicial los otros tiene diferentes nombre necesito copiar ya sabes desde a1 hasta cs1 a los otros archivos en la misma intentar a 1 hasta cs1 dime que le hace falta al código, otra cosa dime si necesito poner el archivo de donde se va a copiar en la misma carpeta donde tengo los otros 100 gracias.
Sub COPIA_PEGA()
Range("A1:CS1").Copy
For Each wb In Workbooks
ActiveWindow.ActivateNext
Range("A1").Select
ActiveSheet.Paste
Next
End Sub
Pruebo el código asi y no me funciona te repito el archivo donde esta lo que necesito copiar a losmotros se llama registro inicial me podrías decri como hago para ejecutar el macro para que copie a1 hasta cs1 en los otros archivos abiertos gracias experto
- Compartir respuesta
Buenas tardes para cualquier por favor alguien me pueda ayudar necesito una macro la cual me pueda reemplazar varios valores ejemplo : tengo una columna con números telefónicos los cuales llega el numero y caracteres especiales o texto adicional comoTelefonos #99998854451-01-99998854451 - 64 - 99998854451 - 44 - 99998854451 - 32 - 999988544 Anexo 999988544 Anexo Titular999988544luis gonzales0 - 0 - 985565445 y lo que se quiere es solo el numero telefónico en este caso 999988544 y los valores adicionales eliminarlos.como podría hacer esto por favor. - Juan c Jr