Saltar al contenido

como arrancar macro en otro en otro pc


Recommended Posts

publicado

da error de archivo no encontrado; que debo hacer para que se ejecute :


WDir1 = "\\DESKTOP-13453GE\C:\Users\ipm20\Desktop\WProces\"
WDir2= "F09-CompVda-PC2-20230701.xlsm"
Run = "'" & WDir1 & WDir2 & "'!ProcCompVda"
Application.Run WRun

muchas gracias

publicado

Hola @manel pubill

Lamento si mi contribución al tema sean preguntas, aunque las considero necesarias.

  • ¿Te refieres a que moviste el libro con macros de una PC a otra y en una si ejecuta y en la otra no?
  • ¿Intentas ejecutar una macro que esta en una PC desde otra PC?
  • Ahí veo rutas locales ¿Interfieren las IP's?
  • ¿La macro funcionaba bien antes? ¿Ocurrió algún evento y dejo de ejecutarse?
  • ¿Una macro es la mejor opción?
  • El error archivo no encontrado es eso, o el archivo no está o no está en la ruta que definiste.
  • ¿Cuál es la idea de lo que quieres hacer?

Seguro que tienes todo el escenario muy claro pero (no hablo por los demás) al menos para mí me faltan detalles para poder intentar sugerirte algo, tal vez para algún Maestro los argumentos que das sean suficientes para ayudarte o darte ideas. Ojalá pudieras compartir algo más.

Saludines.

publicado

Buenos dias,  Israel.

Perdon, perdon,.....

Escenario

Tengo dos PCs en casa, los dos utilizando Wifi,...

En uno hay un libro de excel con macros ejecutandose (A), y en el otro otro libro con macros,  sin hacer nada (B),...

Cada cierto tiempo, (A) debe enviar unos datos a (B) para que éste trabaje con ellos de forma independiente, (un tiempo concreto, inferior a la siguiente llamada-envio desde(A),..

(A), después de cada envio,  sigue con lo suyo, no espera nada de (B).

Espero que la solucion sea facil de entender para mí, soy autodidacta y no estoy en activo,......

Muchas gracias y saludos.

 

 

publicado

Hola.

Te comparto lo que entiendo hasta ahora y considerando que A y B son equipos distintos

El código que compartes está ejecutando una macro llamada ProcCompVda que se encuentra en un archivo especificado por las variables WDir1 y WDir2

  En 11/7/2023 at 9:16 , manel pubill dijo:

WDir1 = "\\DESKTOP-13453GE\C:\Users\ipm20\Desktop\WProces\"
WDir2= "F09-CompVda-PC2-20230701.xlsm"
Run = "'" & WDir1 & WDir2 & "'!ProcCompVda"
Application.Run WRun

Expand  

Es decir puede ser un mismo libro o dos en una PC, donde un libro trata de ejecutar la macro de otro libro o intenta ejecutar en el mismo libro de origen, todo esto dentro del mismo equipo, suponiendo que este es el equipo A ¿Ahí sí funciona bien?

¿El problema es cuando A le manda este archivo a B?

Considerando que en A funciona de manera correcta pero en B no, entonces la pregunta ahora es ¿B cuenta con ese libro o varios libros? ¿En B están habilitadas las macros? Si el libro o libros se encuentran en B ¿La ruta y los nombres en el código están modificados de acuerdo a esa PC?

Empieza por ahí.

Revisa que están habilitadas las macros en el equipo B

* Cambiar la configuración de seguridad de macros en Excel

* Revisa que ambos equipos tengan los libros y revisa que los códigos tengan las rutas correspondientes a cada PC

* Si los libros existen en ambos equipos, ejecuta las macros y si manda algún error comparte que es lo que dice, eso sera de gran ayuda.

Aunque tu duda no parece un problema de Excel o VBA toma el tiempo que necesites y comparte cómo te fue.

Saludines

publicado

Por otro lado, toma en cuenta que el código que compartiste ejecuta una macro llamada ProcCompVda, esa debe estar en algún lado del libro, también hay que ver si el problema esta en esa sentencia. Es decir; es una macro diferente a la que compartiste, puede ser que esté dentro de algún módulo.

Pero por ahora te recomiendo revisar e intentas las primeras pruebas.

publicado

Que tal, Israel?

Es exactamente como lo relatas. 

Cuando no funciona es en la orden entre las dos máquinas, ...

Todo está comprobado y todo funciona de forma independiente, tiene que ser \\DESKTOP-13453GE\ 

No sé si debo hacer algo en el sistema (red, windows,...)

Muchas gracias.

publicado

Entonces parece más una configuración de RED, en términos simples:

  • Una PC debe "ver" a la otra
  • Las PC deben darse permiso de "leer y escribir", activar permisos compartidos
  • Debes crear una conexión de RED con un Router o usar tu modem
  • Si la conexión es por WIFI y la distancia es corta no debería haber problemas, si es más larga a mi gusto no hay como la conexión por cable.
  • Y detalles menores.

¿Como andas en esos temas?

Ahora, antes de entrar de lleno a esto, no hay que descartar. Necesitas estar seguro que el problema es entre redes porque puede seguir siendo como esta tu sentencia siempre y cuando la macro que debe ejecutar sea en el mismo equipo. Ya me mencionaste que es de uno a otro, pero solo es para estar seguro.

publicado

NOTA: Si compartes lo que quieres hacer (y no me refiero a ejecutar una macro de una PC a otra) sino a la idea en general, es posible pensar otras soluciones. Hay varios expertos en el foro que pueden aportar mucho dependiendo de lo que describas.

publicado

Israel, pues parece que sí, que es una configuración de red y no tengo ni idea de lo que hay que hacer.

La macro ProcCompVda cuando reciba la orden de arranque recibirá también un parámetro con los nombres de producto que debe tratar y guardar en el mismo libro.

Que tal, ahora?

Muchas gracias

 

publicado

Entiendo.

Entonces si el tema de redes se te complica entonces enfoquemos el punto en el  Excel y a esta macro: ProcCompVda.

Entiendo que tomas un parámetro de nombres, entonces existe una lista verdad, ¿a qué te refieres con tratar? ¿La lista está en el mismo libro? Si logro entender y tengo el conocimiento para eso, tal vez pueda ayudarte o al menos darte alguna idea. Incluso tal vez podamos opinar sobre opciones diferentes a Excel y que puedas trabajar en simultáneo en tus equipos.

También si puedes por favor comparte la macro en cuestión, la famosa ProcCompVda

 

publicado

Bueno Israel, no puedo alargar más este tema. 

Solo quería una solución que yo pensaba que seria fácil de obtener. Lo poco que sé hacer es con macros y en excel, y de verdad que es poco.

No puedo adentrarme en otros "jaleos" aun más desconocidos para mí.

Pensaba en una orientación para que se "entendieran" los dos ordenadores,.....

Si puede ser, bien, y si no, lo dejamos aquí, quedando muy agradecido por tu dedicación.

Muchas gracias y un saludo.

Manel Pubill

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      189
    • Comentarios
      99
    • Revisiones
      29

  • Crear macros Excel

  • Mensajes

    • Hola Buenas Noches, Me podrán ayudar a resolver un problema con una planilla que tengo, les comento brevemente. Tengo un archivo que cuenta con 2 hojas, la primera se llama "Movimientos" que básicamente muestra los productos con quiebres que se presentan y la hoja "Producción" que como su nombre lo dice son las producciones de cada producto según fecha de creación. Lo que necesito es lo siguiente: Cada vez que agregue una producción en la hoja "producción", debo ingresar el código creado su cantidad y lote respetivamente, además de la fecha en que se realiza la producción, en caso que sea mayor a las 12:00 se considera PM sino AM. Lo complejo es acá en la otra hoja llamada Movimientos: Esta hoja contiene una columna que se llama "Saldo", que básicamente es la diferencia de lo producido vs el quiebre en esa fecha. Una columna llamada "Cumple", que significa que ese pedido lleva si o no el producto con quiebre. Y una columna "Se preparo", que es si el pedido se preparo o no. Lo complicado viene acá es que si la fecha de la producción que ingrese en la hoja "Produccion", se hace después de la fecha de la hoja movimientos no me debe contar esa producción para efecto de la columna Saldos, si la fecha es igual o menor si se considera y ese saldo que queda disponible se puede ocupar para futuros ingresos de pedidos. Otra conducción es que las producciones siempre se deben asignar al pedido más antiguo de ese código salvo que la fecha de entrega ya haya pasado. La columna "Cumple" es básicamente para poder generar un KPI donde me indique cuales producciones se cumplieron con el plazo y cuales No. Espero me puedan ayudar ya que tengo la siguiente formula pero no sirve ya que me toma las unidades totales y no cumple con la restricción del horario. =SUMAR.SI(Produccion!A:A; $A2; Produccion!C:C) - SUMAR.SI.CONJUNTO($E$2:$E2; $A$2:$A2; A2)) Muchas gracias. Ejemplo..xlsx
    • Hola a ambos, Prueba con: =BYROW(G5:G6;LAMBDA(x;UNIRCADENAS(" - ";1;FILTRAR(E5:E10;B5:B10=x)))) Saludos,
    • Si tienes office 365 puedes usar algo como FILTER ó TEXTJOIN y si no tienes, entonces se puede jugar con las formulas, pero no te recomiendo mucho si son muchos datos, de todas maneras te dejo una fórmula y en vba, ya tu decides cual ocupar, vale Saludos BUSCAR.xlsm
    • Buenos días mis estimados Familia ayudaexcel,  Favor quisiera solicitar su gentil soporte con lo siguiente: Necesito una formula que al buscar encuentre el valor inicial de busqueda y dea todo los resultados encontrado en una celda como ejemplo. si este producto tienes 4 cantidades esta al hacer una formula de busqueda me dea el resultado de las 4 en una celda, dejo el adjunto a espera de su gran soporte.   BUSCAR.xlsx
    • Saludos Sr @Israel Cassales espero este bien quise verificar bien su solución y que las modificaciones que hice funcionarán adecuadamente y al respecto debo decir que su aporte es excelente ya que no solo me ayudo a resolver lo que necesitada sino que también me ayudo a solventar dos cosas más por lo cual estoy muy agradecido 
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.