none
Excel y VBA (crear funcion)

    Question

  • Hola.

           Estoy algo perdido entre los foros, estoy buscando algun foro de excel y vba pero no encuentro y este foro es lo mas parecido, asi que si mi consulta no corresponde al foro si pueden orientarme al foro correcto.


          Creo que mi consulta es bien simple y basica pero no he podido encontrar la respuesta en google.

          Quiero definir una funcion en VBA para Excel (2007 en mi caso) para luego usarla en una hoja de calculo.

         Por ejemplo, la funcion  Funcion1().

         Lo que hago:

        1) Abro Microsoft Excel 2007
        2) Click derecho en la viñeta que dice "hoja1" y presiono en "Ver Codigo" que abre la ventana VBA
        3) En la ventana de VBA hago click derecho sobre "VBAProjects" y Insertar->Modulo y me crea un documento modulo1
        4) En el modulo1 escribo
                  Public Function funcion1() As Integer
                             funcion1 = 3
                  End Function

           Es decir, una funcion con nombre funcion1 que retorna un 3
        5) Guardo, al guardar me dice que lo tengo que guardar como XLSM (Libro habilitado para macros)
        6) Vuelvo a la Hoja1 y escribo =fun y el Excel me completa funcion1, es decir, que reconoce la funcion. entonces completo con =funcion1() y luego presiono Enter.

        7) Me aparece el error "#¿NOMBRE?" en la celda.

        Que estoy haciendo mal ?


         He visto varias paginas de VBA pero ninguna parte que explique claramente como definir una funcion y luego utilizarla en una hoja de calculo, tal cual se utilizan las demas funciones estandares de excel.

        Eso, disculpen por el largo pero queria que quedara claro lo que estoy haciendo.

       Ojala puedan ayudarme.


                                                                      
    Monday, March 23, 2009 9:18 PM

All replies

  • Saludos,

    yo lo hice todo tal como lo platicas y me dio el resultado esperado.


    Wednesday, April 01, 2009 12:18 AM
  • por estas fecha ya abran encontrado la respuetas, pero la pongo para los que buscan una solucion a un problema similar; hay que activar la ejecucion de macros de esta manera documentada en http://weblog.dhispano.com/2008/04/activar-macros-en-excel-2007.html

    Para poder habilitar las macros en Office 2007 tendremos que activar primero en la cinta de opciones la opción Programador.
    Para activarla:
    • Ir al Botón Office
    • Hacer clic en la parte inferior del menú en Opciones de Excel
    • Entre las opciones Más frecuentes buscar y activar la que pone Mostrar ficha del programador en la cinta de opciones y aceptar para salir de la ventana.
    Para poder ejecutar macros el siguiente paso es:
    • Hacer clic en la ficha Programador que hay en la parte derecha de la Cinta de opciones
    • Hacer clic en el botón Seguridad de macros
    • Activar la opción Habilitar todas las macros. Recordar que esta opción no siempre ha de estar activada, pues si la dejáis activada cualquier virus camuflado en una macro de Excel puede afectaros.


    • Proposed as answer by Timon__ Wednesday, October 14, 2009 4:42 AM
    Wednesday, October 14, 2009 4:38 AM
  • Listo la respuesta de Timon_ es tu solucion, solo quisiera decir que si eliges:

    Para poder ejecutar macros el siguiente paso es:
    • Hacer clic en la ficha Programador que hay en la parte derecha de la Cinta de opciones
    • Hacer clic en el botón Seguridad de macros
    • Deshabilitar todas las macros con notificación.

      esta opcion te da la oportunidad de activar las macros o no activarlas, ya que aparece una cinta que dice:
      Advertencia de seguridad
      Algún contenido activo se ha desactivado; con un boton a un lado que dice "opciones" para activarla.

    Asi pues tu puedes activarla si es de confianza o revisar la macro para asegurarte que "NO pueda dañar archivos"

    saludos.


    xDaNbOx
    Saturday, October 17, 2009 1:13 AM
  • Pruebe escribiendo el codigo de la funcion desde un módulo (y no desde la ventana de codigo de la hoja de calculo).. Yo lo hice asi y quedó bien la funcion

    • Proposed as answer by Dany.es Monday, August 20, 2012 3:03 AM
    • Unproposed as answer by Dany.es Monday, August 20, 2012 3:03 AM
    Wednesday, February 01, 2012 11:49 PM
  • Buenas

    Estoy haciendo un programa de unas votaciones con vb 2005 y me e encontrado que necesito abrir el documento

    pero ya existente y encontre este codigo:  System.Diagnostics.Process.Start("C:\libro1.xlsx") funciona a la perfeccion.

    Pero como hago que si escribo en el textbox al darle click al button esa informacion pase a una celda del libro de excel.

    Y necesito tambien que compruebe si textbo1= celda X then form2.show

    Gracias por su colaboracion

    :D
    Monday, August 20, 2012 3:03 AM