Macro modificar rutas ???

12 envíos / 0 nuevos
Último envío
eugeniocol
Imagen de eugeniocol
Offline
última acción: Hace 2 años 3 meses
Nivel 1 - 200 puntos
alta: 29/08/2017 - 17:21
Puntos: 1675
Macro modificar rutas ???

Hola buenas.

Tengo varias carpetas con  libros y estos enlazados con otros libros Excel.

Cada vez que cambio nombre a la carpeta principal tengo que cambiar las rutas en libros y hojas de todos.

Busco una macro para que modifique las rutas de varias hojas en  libros y modifique ruta en un módulo.

Un Saludo.

eugeniocol
Imagen de eugeniocol
Offline
última acción: Hace 2 años 3 meses
Nivel 1 - 200 puntos
alta: 29/08/2017 - 17:21
Puntos: 1675
respuesta

Bueno he ido haciendo avances al tema.

Ahora solo necesitaría una macro dentro del mismo libro, que me cambie en una macros  que están en Modulo 1 y 2

Dentro de una ruta ejemplo: Libro Nº6 por Libro Nº7 o simplemente Nº6 por Nº7

Un Saludo.

eugeniocol
Imagen de eugeniocol
Offline
última acción: Hace 2 años 3 meses
Nivel 1 - 200 puntos
alta: 29/08/2017 - 17:21
Puntos: 1675
respuesta

parece ser que es una pregunta complicada???

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 1 día
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Más que complicada, es una

Más que complicada, es una pregunta muy abierta.

Entiendo que sabes hacer una macro. Podías poner tu propuesta, y preguntar donde te quedas atascado. Si no llegas a hacer un planteamiento, podrías poner tu esquema mental y preguntar qué le falta a tu idea. Pero no dejes la pregunta así, que esto no es Yahoo Respuestas con preguntas del tipo "tengo que hacer la tarea y este es el escaneo de las preguntas. Respóndanmelas"

Un saludo

eugeniocol
Imagen de eugeniocol
Offline
última acción: Hace 2 años 3 meses
Nivel 1 - 200 puntos
alta: 29/08/2017 - 17:21
Puntos: 1675
respuesta

solo se hacer macros muy basicas, si manejara las macros apenas preguntaria.

Quizás la explicación no fue muy concreta.


Ejemplo:
En una hoja dentro de una celda escribo en texto que quiero cambiar en un libro (actual u otro libro) de un módulo.
Pues una macro que lo realice.
Son como 10 libros en diferentes carpetas y estos están en una carpeta principal ejemplo carpeta Nº5 cuando todo lo cambio a carpeta Nº6, tengo que cambiar en todos…. Los libros…. En sus módulos 1 y 2 la referencia que hay en las macros del Nº5 a Nº6.

O sea lo que tengo que hacer a mano dentro del módulo con la opción buscar y reemplazar.

Trate de hacerlo con la grabadora pero nada.


Espero haberme explicado mejor esta vez.

Un Saludo.

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 1 día
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
¿Y por qué no haces

¿Y por qué no haces simplemente una referencia a la celda del otro libro?

eugeniocol
Imagen de eugeniocol
Offline
última acción: Hace 2 años 3 meses
Nivel 1 - 200 puntos
alta: 29/08/2017 - 17:21
Puntos: 1675
respuesta

no entiendo??

en Librox tengo varias macros como esta unas 5 en modulo 1 y otras tantas en modulo 2,solo que cambian el nombre de la macro:

Sub  UNA_2010_11 ()

Application.ScreenUpdating = False

Workbooks.Open Filename:="C:\Users\root\Desktop\ESCRITORIO\CARPETA1\LIBRO1\CARPETA2\CARPETA3\LIBRO Nº6\2010-11\LIBRO3.xlsm"

Sheets("HOJA1").Select

Range("C34").Select

Application.Run "'LIBRO3.xlsm'! RUTAS_VARIANTES"

End Sub

Y yo solo pretendo cambiar en las macros de los modulos este dato LIBRO Nº6 por este otro LIBRO Nº7

Que en la hoja1 del librox en celda D10 seria segun necesidad iria poniendo el dato a cambiar en los modulos, LIBRO Nº7,LIBRO Nº8 ect..... 

Un Saludo.

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 1 día
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Puedes calcular en cada

Puedes calcular en cada momento el dato LIBRO Nº6, LIBRO Nº 7, etc, asignándolo a la variable libro (por ejemplo) y luego hacer:

Workbooks.Open Filename:="C:\Users\root\Desktop\ESCRITORIO\CARPETA1\LIBRO1\CARPETA2\CARPETA3\" & libro & "\2010-11\LIBRO3.xlsm"

 

Un saludo

eugeniocol
Imagen de eugeniocol
Offline
última acción: Hace 2 años 3 meses
Nivel 1 - 200 puntos
alta: 29/08/2017 - 17:21
Puntos: 1675
respuesta

bueno tengo esta macro que hacel el cambio de datos dentro de un modulo, pero no se como hacer en esta macro para que los cambios lo realice desde una celda

Sub Cambiar_1()

Dim VBModulo As CodeModule
Dim LineasCod As Integer, x As Integer
Dim Cadena As String
Set VBModulo = Workbooks("CAMBIAR RUTAS.xlsm").VBProject.VBComponents("Módulo4").CodeModule
Let LineasCod = VBModulo.CountOfLines
For x = 1 To LineasCod
    Let Cadena = VBModulo.Lines(x, 1)
    If InStr(1, Cadena, "Nº6") > 0 Then
        Let Cadena = Application.WorksheetFunction.Substitute(Cadena, "Nº6", "Nº5")
        VBModulo.replaceLine (x), Cadena
     ElseIf InStr(1, Cadena, "Nº7") > 0 Then
        Let Cadena = Application.WorksheetFunction.Substitute(Cadena, "Nº7", "Nº6")
        VBModulo.replaceLine (x), Cadena
    End If
Next x

End Sub

estoy probando con esta macro pero nada

Let Cadena = Application.WorksheetFunction.Substitute(Cadena, Worksheets("CENTRADAS").Range("H13"), Worksheets("CENTRADAS").Range("H14"))

que la pongo en la anterior

Sub Cambiar_PRUEBA()

Dim VBModulo As CodeModule
Dim LineasCod As Integer, x As Integer
Dim Cadena As String
Set VBModulo = Workbooks("CAMBIAR RUTAS.xlsm").VBProject.VBComponents("Módulo4").CodeModule
Let LineasCod = VBModulo.CountOfLines
For x = 1 To LineasCod
    Let Cadena = VBModulo.Lines(x, 1)
    If InStr(1, Cadena, "CENTRADAS") > 0 Then
        Let Cadena = Application.WorksheetFunction.Substitute(Cadena, Worksheets("CENTRADAS").Range("H13"), Worksheets("CENTRADAS").Range("H14"))
        VBModulo.replaceLine (x), Cadena
   
    End If
Next x

End Sub

Un Saludo.

 

eugeniocol
Imagen de eugeniocol
Offline
última acción: Hace 2 años 3 meses
Nivel 1 - 200 puntos
alta: 29/08/2017 - 17:21
Puntos: 1675
respuesta

Encontré la solución si hay otra mejor se acepta, esta funciona ok.

If InStr(1, Cadena, Range("H11").Value) > 0 Then

 Let Cadena = Application.WorksheetFunction.Substitute(Cadena, Worksheets("CENTRADAS").Range("H11").Value, Worksheets("CENTRADAS").Range("H12").Value)

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 1 día
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Es que creo que te complicas

Es que creo que te complicas mucho. Cambiar el código "on the fly" es algo que es muy extraño, muy complejo y no siempre te lo permite hacer Excel (por temas de seguridad y tal)

Pero es que lo tienes mucho más sencillo. Es lo que te puse en la respuesta anterior. Te decía que guardaras en valor en una variable, pero vale también en una celda:

 

Workbooks.Open Filename:="C:\Users\root\Desktop\ESCRITORIO\CARPETA1\LIBRO1\CARPETA2\CARPETA3\" & Worksheets("CENTRADAS").Range("H14") & "\2010-11\LIBRO3.xlsm"

 

De verdad, no entiendo tanta complicación, salvo que sea un "reto personal". Seguramente se me esté pasando algo por alto.

Un saludo

eugeniocol
Imagen de eugeniocol
Offline
última acción: Hace 2 años 3 meses
Nivel 1 - 200 puntos
alta: 29/08/2017 - 17:21
Puntos: 1675
respuesta

ya te comente que lo que me dice lo acople y lo unico que hace es es abrir el LIBRO3, no hace ningun cambio de dato desde la celda, o sea no hace lo que yo quiero, cambiar dato desde una celda no abrir otro libro.

Un Saludo.