Thanks Thanks:  0
Likes Likes:  0
Results 1 to 9 of 9

Thread: Elaborar Macro y que se ejecute dependiendo del valor elegido en celda

  1. #1
    Board Regular
    Join Date
    Jan 2013
    Posts
    54
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default Elaborar Macro y que se ejecute dependiendo del valor elegido en celda

    En una hoja Excel, llamada "DATOS", en su columna "H" hay una validación de datos con las opciones "Anulada", "En Tramite", "No aceptada", "Pendiente", "Realizada" y "Traspasada"; y en la columna "F" nombres de archivos, en formato word, de modo que si hago clic en cualquiera de ellos se abren automáticamente mediante un hipervínculo, estos archivos se encuentran originalmente en la carpeta "FICHAS" (C:\Seguridad\Datos\FICHAS). Lo que necesito es una macro que realice lo siguiente:
    Dependiendo de la opción que elija de la validación de datos de cualquier celda de la columna "H" ("Anulada", "En tramite", "No aceptada", "Pendiente", "Realizada" y "Traspasada"), seleccione la celda correspondiente a su misma fila de la columna "F", y guarde el archivo que se encuentra en esa celda en la carpeta "Anulada", si la opción elegida de la validación de datos es "Anulada"; en la carpeta "En trámite" si la opción elegida es "En tramite" y así con el resto de las opciones que se elijan.
    Ejemplo:
    Si en la celda "H2", se elije la opción "Anulada", la macro seleccione la celda "F2" y guarde el archivo que se encuentra en esa celda en la carpeta, denominada "Anulados"
    Si en la celda "H3", se elije la opción "En trámite", la macro seleccione la celda "F3" y guarde el archivo que se encuentra en esa celda en la carpeta, denominada "En trámite"
    Si en la celda "H4", se elije la opción "No aceptada", la macro seleccione la celda "F4" y guarde el archivo que se encuentra en esa celda en la carpeta, denominada "No aceptada"; y así, sucesivamente.
    Muchas gracias.

  2. #2
    MrExcel MVP
    Int'l Moderator
    Greg Truby's Avatar
    Join Date
    Jun 2002
    Location
    39° 17' 15" N, -94° 40' 26" W
    Posts
    9,951
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)

    Default Re: Elaborar Macro y que se ejecute dependiendo del valor elegido en celda

    Hola Aretradeser. Si usted podría compartir especificamente qué problema le tiene estancado en al proceso de escribir tal macro, con mucho gusto alguien de aquí le ayuda en tratar de avanzar sus labores. Favor comparte con nosotros lo que usted ha desarrollado hasta el momento y cuál es el aspecto que le tiene parado.
    Greg
    ………………………………………………
    Home: XL 2003, 2007, 2010, and 2013 on Windows 7
    Work: XL 2013, 2016 on Windows 10
    Please use CODE tags - especially for longer excerpts of code.

  3. #3
    Board Regular
    Join Date
    Jan 2013
    Posts
    54
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default Re: Elaborar Macro y que se ejecute dependiendo del valor elegido en celda

    No se como hacer ese código. Lo he intentado con la grabadora de macros, pero no sale prácticamente nada. Mucho le agradecería que me indicara las líneas de código e ir adaptándolas poco a poco a mi archivo excel.
    Muchas gracias por su rápida respuesta e interés.

  4. #4
    Board Regular
    Join Date
    Apr 2009
    Posts
    1,685
    Post Thanks / Like
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    Default Re: Elaborar Macro y que se ejecute dependiendo del valor elegido en celda

    Hola,

    Algo como

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Column <> 8 Then Exit Sub
    MsgBox Target.Offset(0, -2)
    End Sub

  5. #5
    MrExcel MVP
    Int'l Moderator
    Greg Truby's Avatar
    Join Date
    Jun 2002
    Location
    39° 17' 15" N, -94° 40' 26" W
    Posts
    9,951
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)

    Default Re: Elaborar Macro y que se ejecute dependiendo del valor elegido en celda

    Tengo unas preguntas para saber mejor ciertos aspectos del diseño que sería prudente tomar en cuenta desde el inicio.

    1. Usted indica que «al seleccionar tal valor en columna H» haga tal y tal. ¿Esto de veras sería el mejor gatillo? ¿O sea cada vez que el usuario cambia el valor en celda H2, hay que copiar el archivo? Cuando selecciono «anulado», el macro guarda tal archivo en la carpeta «anulado». ¿Pero si una hora después cambio H2 de «anulado» a «en trámite», guardo el archivo que se encuentra en F2 en la carpeta «en trámite»?

    2. Vinculado a 1, ¿qué pasa con el archivo original? ¿Siempre hay copia en la carpeta original? ¿O estamos moviendo el archivo, no simplemente guardándolo?

    3. ¿Si estamos moviendo el archivo, actualizamos el vínculo en F2 para que esté de acuerdo con la dirección nueva? ¿O suprimimos el vínculo en columna F?

    4. Un gatillo alternativo sería un botón. O sea, en vez de que el macro corre tan pronto como hay un cambio en la columna H, el usuario puede ir cambiando varias celdas en H, y cuando ha cambiado todas las celdas deseadas, hace un cliq para procesar todas de una vez. También esto ayuda con los casos donde el usario mete la pata y escoge la opción equivocada. Así le ofrecimos la oportunidad de corregir su selección antes de guardar el archivo.
    Last edited by Greg Truby; Aug 28th, 2017 at 04:22 PM.
    Greg
    ………………………………………………
    Home: XL 2003, 2007, 2010, and 2013 on Windows 7
    Work: XL 2013, 2016 on Windows 10
    Please use CODE tags - especially for longer excerpts of code.

  6. #6
    Board Regular
    Join Date
    Jan 2013
    Posts
    54
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default Re: Elaborar Macro y que se ejecute dependiendo del valor elegido en celda

    Muchas gracias por su respuesta.
    Me parece que lo expresado en su punto 4 es una solución brillante,
    Hay que tener en cuenta algunas cuestiones:
    El archivo original hay que moverlo en cada ocasión, no guardarlo. Tampoco debe quedar copia en la carpeta original.
    El vínculo hay que modificarlo cada vez que se mueva el archivo.
    Espero haberle aclarado sus dudas.

  7. #7
    MrExcel MVP
    Int'l Moderator
    Greg Truby's Avatar
    Join Date
    Jun 2002
    Location
    39° 17' 15" N, -94° 40' 26" W
    Posts
    9,951
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)

    Default Re: Elaborar Macro y que se ejecute dependiendo del valor elegido en celda

    Bueno. Para que sepa, esto será un proceso que tendrá por lo menos una docena de pasos. Lo más probable veinte o más. Pero al terminar usted entenderá qué hemos hecho y sabrá mucho más sobre cómo solucionar problemas de Excel usted mismo en el futuro. Si usted está dispuesto entonces el primero paso sería hacer que una vez que usted cambia el valor en la columna H, tal celda cambia de color.

    Para lograr este primer paso, utilice la grabadora de macros de Excel y cambia el color de unas celdas. Así usted verá el código necesario para esto. Después vea lo que puso James006 y trate de adaptar lo que él escribió para utilizar lo que la grabadora de macros le proveyó.

    Con estas dos pistas usted debe poder descubrir el rastro indicado.
    Last edited by Greg Truby; Aug 30th, 2017 at 06:23 PM.
    Greg
    ………………………………………………
    Home: XL 2003, 2007, 2010, and 2013 on Windows 7
    Work: XL 2013, 2016 on Windows 10
    Please use CODE tags - especially for longer excerpts of code.

  8. #8
    Board Regular
    Join Date
    Jan 2013
    Posts
    54
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default Re: Elaborar Macro y que se ejecute dependiendo del valor elegido en celda

    Este es el código que me da la grabadora de macros cuando elijo cada una de las opciones de la validación de datos en "H2", cambio en color en "G2"
    Code:
    Sub Color()'
    ' Color Macro
    '
    
    
    '
        Range("G2").Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        Range("G2").Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 26367
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        Range("G2").Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 8421504
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        Range("G2").Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 255
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        Range("G2").Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 255
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 5287936
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        Range("G2").Select
        With Selection.Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .ThemeColor = xlThemeColorLight2
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
    End Sub
    Pero no se como adaptar el código facilitado por James006.
    Muchas gracias

  9. #9
    MrExcel MVP
    Int'l Moderator
    Greg Truby's Avatar
    Join Date
    Jun 2002
    Location
    39° 17' 15" N, -94° 40' 26" W
    Posts
    9,951
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)

    Default Re: Elaborar Macro y que se ejecute dependiendo del valor elegido en celda

    Quote Originally Posted by Aretradeser View Post
    Pero no se como adaptar el código facilitado por James006.
    Muchas gracias
    Bueno, para darme una idea de tus habilidades actuales:

    Si yo le pidiera que escribiera un macro que indicara la dirección de la celda seleccionada en la barra de estado (status bar) de Excel cada vez que el usuario selecciona una celda diferente, ¿usted sería capaz de hacer esto?.
    Last edited by Greg Truby; Sep 5th, 2017 at 02:14 PM.
    Greg
    ………………………………………………
    Home: XL 2003, 2007, 2010, and 2013 on Windows 7
    Work: XL 2013, 2016 on Windows 10
    Please use CODE tags - especially for longer excerpts of code.

User Tag List

Tags for this Thread

Like this thread? Share it with others

Like this thread? Share it with others

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


DMCA.com