Bienvenido a la mayor comunidad de usuarios EXCEL

Regístrate ahora y podrás: / 💪 Hacer preguntas a los expertos / ⬇️ Descargar ejemplos y plantillas / 🏅 Acceder a contenidos premium

Regístrate gratis

Guardar PNG en diferentes rutas con macro (Diferentes Computadoras)

Ukithaz

New member
¡Hola Amigos!

Tengo este código:
Código:
    Dim pic_rng As Range
    Dim sh_temp As Worksheet
    Dim ch_temp As Chart
    Dim pictemp As Picture
      
    ruta = "C:\Users\lucas\OneDrive\Escritorio\Comprobantes\"      'RUTA PC LOCAL (CAJA) WIN10 INTEL PENTIUM GOLD
    'ruta = "C:\Users\Ukithaz\Desktop\Comprobantes\"                'RUTA PC (EUGENIA) WIN10 AMD RIZEN 3 Y PC LOCAL (VIEJA)
    'ruta = "C:\Users\matii\Desktop\EMPRESA\Comprobantes\"          'RUTA PC (MATIAS) WIN10
    'ruta = "C:\Users\PC-Mathy\Desktop\EMPRESA\Comprobantes\"       'RUTA PC (IAN) WIN10

    Archivo = ruta & Worksheets("Comprobante 2").[H4] & ".PNG"

    Set pic_rng = Worksheets("Comprobante 2").Range("B2:K42")
    Set sh_temp = Worksheets.Add
    Charts.Add
    ActiveChart.Location where:=xlLocationAsObject, Name:=sh_temp.Name
    Set ch_temp = ActiveChart
    pic_rng.CopyPicture appearance:=xlScreen, Format:=xlPicture
    ch_temp.Paste
    Set pictemp = Selection
    With ch_temp.Parent
    .Width = 875 'pictemp.Width
    .Height = 650 'pictemp.Height
    End With
    ch_temp.Export Archivo
    Application.DisplayAlerts = False
    sh_temp.Delete
    Application.DisplayAlerts = True

Tengo el mismo archivo para 4 computadoras, y según en la computadora que se esté usando, hay que cambiarle el código de la macro ("cambiar los comentarios", sacarle la comilla a la ruta que me sirve y colocándosela a la ruta de otra PC). Es bastante tedioso hacer eso cada vez que el archivo se actualice en la PC central y se copie en las demás.

Si estoy en otra PC y me olvido de cambiar las comillas, la macro tira error 76 "no se ha encontrado la ruta de acceso".

¿Existe alguna manera de que pueda usar la macro en las mismas 4 computadoras sin tener que modificar el código manualmente?
 
Solución
una idea seria
Crea unidad virtual para cada maquina en ruta de cada maquina que tu quieras y le pones la letra X: por ejemplo en todas las maquinas

y en la macro pones guardar en

X:\Ruta\Nomnbredelpgn.png

**La otra seria poner en un celda la ruta .. y que obtenga la ruta escrita en esa celda y le pones en cada ruta.

asi guardaras sin importar siempre y cuando tenga la Unidad correctamente realizada o qeu este en la celda correctamente.

silver_axe007

Active member
una idea seria
Crea unidad virtual para cada maquina en ruta de cada maquina que tu quieras y le pones la letra X: por ejemplo en todas las maquinas

y en la macro pones guardar en

X:\Ruta\Nomnbredelpgn.png

**La otra seria poner en un celda la ruta .. y que obtenga la ruta escrita en esa celda y le pones en cada ruta.

asi guardaras sin importar siempre y cuando tenga la Unidad correctamente realizada o qeu este en la celda correctamente.
 

Héctor Miguel

Well-known member
el mismo archivo para 4 computadoras, y según en la computadora que se esté usando, hay que cambiarle el código de la macro ("cambiar los comentarios", sacarle la comilla a la ruta que me sirve y colocándosela a la ruta de otra PC)
segun la relacion que guarde la ubicacion donde quieres trabajar con cada usuario/pc, prueba con una ruta base del tipo:
ruta = thisworkbook.path & "\ ........ ?"
 

Ukithaz

New member
una idea seria
Crea unidad virtual para cada maquina en ruta de cada maquina que tu quieras y le pones la letra X: por ejemplo en todas las maquinas

y en la macro pones guardar en

X:\Ruta\Nomnbredelpgn.png

**La otra seria poner en un celda la ruta .. y que obtenga la ruta escrita en esa celda y le pones en cada ruta.

asi guardaras sin importar siempre y cuando tenga la Unidad correctamente realizada o qeu este en la celda correctamente.
Hola, muchas gracias por tu aporte. Con este código pude resolver mi problema:

Código:
    Dim Usuario As Variant
    
    Usuario = Environ("UserName")
    
    If Usuario = "matii" Then
    ruta = "C:\Users\matii\Desktop\EMPRESA\Comprobantes\"          'RUTA PC (MATIAS) WIN10
    End If
    
    If Usuario = "Ukithaz" Then
    ruta = "C:\Users\Ukithaz\Desktop\Comprobantes\"                'RUTA PC (EUGENIA) WIN10 AMD RIZEN 3 Y PC LOCAL (VIEJA)
    End If
    
    If Usuario = "PC-Mathy" Then
    ruta = "C:\Users\PC-Mathy\Desktop\EMPRESA\Comprobantes\"       'RUTA PC (IAN) WIN10
    End If
    
    If Usuario = "lucas" Then
    ruta = "C:\Users\lucas\OneDrive\Escritorio\Comprobantes\"      'RUTA PC LOCAL (CAJA) WIN10 INTEL PENTIUM GOLD
    End If
 

charly.chavez

New member
¡Hola Amigos!

Tengo este código:
Código:
    Dim pic_rng As Range
    Dim sh_temp As Worksheet
    Dim ch_temp As Chart
    Dim pictemp As Picture
     
    ruta = "C:\Users\lucas\OneDrive\Escritorio\Comprobantes\"      'RUTA PC LOCAL (CAJA) WIN10 INTEL PENTIUM GOLD
    'ruta = "C:\Users\Ukithaz\Desktop\Comprobantes\"                'RUTA PC (EUGENIA) WIN10 AMD RIZEN 3 Y PC LOCAL (VIEJA)
    'ruta = "C:\Users\matii\Desktop\EMPRESA\Comprobantes\"          'RUTA PC (MATIAS) WIN10
    'ruta = "C:\Users\PC-Mathy\Desktop\EMPRESA\Comprobantes\"       'RUTA PC (IAN) WIN10

    Archivo = ruta & Worksheets("Comprobante 2").[H4] & ".PNG"

    Set pic_rng = Worksheets("Comprobante 2").Range("B2:K42")
    Set sh_temp = Worksheets.Add
    Charts.Add
    ActiveChart.Location where:=xlLocationAsObject, Name:=sh_temp.Name
    Set ch_temp = ActiveChart
    pic_rng.CopyPicture appearance:=xlScreen, Format:=xlPicture
    ch_temp.Paste
    Set pictemp = Selection
    With ch_temp.Parent
    .Width = 875 'pictemp.Width
    .Height = 650 'pictemp.Height
    End With
    ch_temp.Export Archivo
    Application.DisplayAlerts = False
    sh_temp.Delete
    Application.DisplayAlerts = True

Tengo el mismo archivo para 4 computadoras, y según en la computadora que se esté usando, hay que cambiarle el código de la macro ("cambiar los comentarios", sacarle la comilla a la ruta que me sirve y colocándosela a la ruta de otra PC). Es bastante tedioso hacer eso cada vez que el archivo se actualice en la PC central y se copie en las demás.

Si estoy en otra PC y me olvido de cambiar las comillas, la macro tira error 76 "no se ha encontrado la ruta de acceso".

¿Existe alguna manera de que pueda usar la macro en las mismas 4 computadoras sin tener que modificar el código manualmente?
hola que tal oye no tendras el codigo para que no me elimine el archivo anterior
me sobre escribe el archivo y necesito el historico completo

te lo agradeceria mucho
 

Temas similares

Arriba