none
Alertar cuando se elimina una columna en excel RRS feed

  • Pregunta

  • Buenas tardes,

    Espero me puedan ayudar con lo siguiente:

    Resulta que estoy haciendo un proyecto en C# creando un objeto de excel, y lo que hago es que lleno la hoja de excel con inf que descargo mediante un boton.

    Lo que necesito es que cuando se elimine una columna de esa hoja me salga un mensaje alertandome.

    Tengo claro que hay un evento Change que se activa cuando se hace una modificación, pero no he podido saber como sacar un mensaje cuando se elimine la columna.

    Muchas gracias 

    miércoles, 30 de diciembre de 2015 19:19

Respuestas

  • Hola,

    Complicado tú problema, en principio no hay ningún evento especifico que se dispare al borrar una columna, lo que podrías hacer es usar la propiedad columns que devuelve un array de columnas especificado, cargarías un array una vez completado todo el proceso de creación del excel y antes de darle control al usuario, luego usando el evento Change comprobaría este array con uno nuevo solicitado en el propio evento, esto tiene muchas lagunas pero podría servir, no se complicado, que tengas suerte.

    Un saludo.


    Es de buena educación dar las gracias cuando te ayudan, si alguna respuesta te ha sido de utilidad agradécelo marcandola como útil.
    Blog

    jueves, 31 de diciembre de 2015 10:34

Todas las respuestas

  • Hola,

    Complicado tú problema, en principio no hay ningún evento especifico que se dispare al borrar una columna, lo que podrías hacer es usar la propiedad columns que devuelve un array de columnas especificado, cargarías un array una vez completado todo el proceso de creación del excel y antes de darle control al usuario, luego usando el evento Change comprobaría este array con uno nuevo solicitado en el propio evento, esto tiene muchas lagunas pero podría servir, no se complicado, que tengas suerte.

    Un saludo.


    Es de buena educación dar las gracias cuando te ayudan, si alguna respuesta te ha sido de utilidad agradécelo marcandola como útil.
    Blog

    jueves, 31 de diciembre de 2015 10:34
  • Muchas gracias, analizaré el metodo!!
    jueves, 31 de diciembre de 2015 17:08
  • Hola Rodrigo

    Te cuento que pude encontrar la solución al problema planteado inicialmente,

    la idea es que cuando el evento change se active se valida lo siguiente

       private void Worksheet_Change(Microsoft.Office.Interop.Excel.Range Target)
            {
               
                    if (Target.Address == Target.EntireRow.Address || Target.Address == Target.EntireColumn.Address)
                    {
                        Globals.ThisAddIn.Application.EnableEvents = false;
                        Globals.ThisAddIn.Application.Undo();
                        MessageBox.Show("Acción NO permitida; Se han deshecho los cambios", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        Globals.ThisAddIn.Application.EnableEvents = true;
                    
                }

    Con esto cuando se elimina una columna  o inserta se hace la validacio y se deshacen los cambios.

    Saludos

    martes, 19 de enero de 2016 21:27
  • Me alegro que pudieras solucionar tu problema.

    Gracias por compartir la solución en el foro.

    Un saludo.


    Es de buena educación dar las gracias cuando te ayudan, si alguna respuesta te ha sido de utilidad agradécelo marcandola como útil.
    Blog

    miércoles, 20 de enero de 2016 15:47