Jump to content

Guardar de forman permanente variables


Recommended Posts

Hola a todos;

-En en video del siguiente enlace os muestro como he conseguido guardar de forma permanente el valor de nuestras variables.

Para ello lo que hago al momento de pulsar el botón es limpiar previamente el módulo e insertar los nuevos datos y por medio de una función los recupero.

Enlace video:

Variables permanentes

image.thumb.gif.23f0bb240b48383693444a28535af461.gif

MVariablePermanente(Multiples).xlsm

Link to comment
Share on other sites

Me parece que te complicas la vida, la forma más habitual de guardar datos es en una hoja oculta, pero también se puede hacer con nombres.

Con hoja oculta sería algo así:

  • Columna A-Nombre formulario/Variable
  • Columna B-Nombre control
  • Columna C-Valor 1
  • Columna D-Valor 2
  • Columna E-Valor 3
  • ......

Te dejo un ejemplo con nombres.

 

Variables fijas.xlsm

Edited by Antoni
Link to comment
Share on other sites

Hola Antoni, he visto tú propuesta y me ha gustado mucho.

Sabía de los dos métodos y de este segundo lo sabía hacer pero manualmente y no desde un procedimiento.

En cuanto al primero, no me gusta mucho dejar anotaciones en las hojas ya que por error alguien las puede borrar y después ya no funciona la macro.

He revisado tú propuesta la cual está genial y veo que no deja guardar "texto" solo números, ¿se puede reconfigurar para que admita también "texto"?.

Un abrazo Antoni y excelente trabajo.

P.D. Esta vez te pondré un 9, te fallo lo del texto?

 

Ya lo he resuelto y un punto para mi, inclusive probé con un combo.?

image.png.225ecfdc6ea2acbe8e4847b5121409de.png

Edited by Benito Bartolomé
Link to comment
Share on other sites

En cuanto al primero, no me gusta mucho dejar anotaciones en las hojas ya que por error alguien las puede borrar y después ya no funciona la macro.

Si proteges la hoja y la ocultas como VeryHidden no tendrás problemas.

Link to comment
Share on other sites

hace 24 minutos , Antoni dijo:
En cuanto al primero, no me gusta mucho dejar anotaciones en las hojas ya que por error alguien las puede borrar y después ya no funciona la macro.

Si proteges la hoja y la ocultas como VeryHidden no tendrás problemas.

Ya lo sé, pero me gusta más esta segunda opción ?

Link to comment
Share on other sites

hola, a ambos !

asumo que ya saben que tambien los nombres se pueden ocultar (al crearlos desde vba), p.ej. para el libro activo:

names.add "nombre", "=aqui la formula o referencia", 0 ' (o false) '
Link to comment
Share on other sites

En 15/2/2023 at 14:43 , Benito Bartolomé dijo:

Hola a todos;

En el siguiente enlace os muestro otra forma de cargar datos en un ComboBox.

Cargar ComboBox - video

Saludos a todos.

 

hace 3 horas, Héctor Miguel dijo:

hola, a ambos !

asumo que ya saben que tambien los nombres se pueden ocultar (al crearlos desde vba), p.ej. para el libro activo:

names.add "nombre", "=aqui la formula o referencia", 0 ' (o false) '

Hola Héctor, pues sí ya lo había visto en un video de Sergio Alejandro donde comenta que la idea era suya, aún así agradezco el detalle. Está bien esta opción para guardar datos que no queramos mostrar.

Como lo decía a Antoni si sabía hacerlo siguiendo dicho video pero no me imaginaba que se pudiese hacer mediante una macro, la verdad que es bastante simple y muy muy útil.

Lo que yo sugería es un pelín mas largo pero a efectos el resultado es el mismo.

Pues ya quedan dos opciones para almacenar los valores de las variables de forma permanente.

Gracias a ambos por vuestros aportes y sabiduría.

Saludos

Edited by Benito Bartolomé
Link to comment
Share on other sites

En 15/8/2023 at 19:25 , Antoni dijo:

Me parece que te complicas la vida, la forma más habitual de guardar datos es en una hoja oculta, pero también se puede hacer con nombres.

Con hoja oculta sería algo así:

  • Columna A-Nombre formulario/Variable
  • Columna B-Nombre control
  • Columna C-Valor 1
  • Columna D-Valor 2
  • Columna E-Valor 3
  • ......

Te dejo un ejemplo con nombres.

 

Variables fijas.xlsm 23.19 kB · 4 descargas

Hola @Antoni disculpa que te moleste nuevamente, no tengo la tarde acertada?.

Estoy tratando de implementar tu propuesta usando OptionButtons  para seleccionar el "Genero" si es "masculino" o "femenino" y no soy capaz, ya he probado de varias formas y no hay manera. 

He probado usando "texto" y "número" y no me sale. Incluso e duplicado "Genero" por si acaso.

Seguramente es una tontería pero no lo veo, ni con gafas?

Saludos.

 

Variables fijas.xlsm

Edited by Benito Bartolomé
Link to comment
Share on other sites

Así funciona:

'------------------------------------------------------------------
Private Sub Guardar_Click()
   With ActiveWorkbook.Names
      .Add Name:="ALBARÁN", RefersTo:=TextBox1, Visible:=False
      .Add Name:="PEDIDO", RefersTo:=TextBox2, Visible:=False
      .Add Name:="FACTURA", RefersTo:=TextBox3, Visible:=False
      .Add Name:="ASIENTO", RefersTo:=TextBox4, Visible:=False
      .Add Name:="Genero1", RefersTo:=OptionButton1, Visible:=False
      .Add Name:="Genero2", RefersTo:=OptionButton2, Visible:=False
   End With
   Unload Me
End Sub
'-------------------------------------------------------------------
Private Sub UserForm_Initialize(): On Error Resume Next
    TextBox1 = [ALBARÁN]
    TextBox2 = [PEDIDO]
    TextBox3 = [FACTURA]
    TextBox4 = [ASIENTO]
    OptionButton1.Value = [Genero1]
    OptionButton2.Value = [Genero2]
End Sub

 

Link to comment
Share on other sites

hace 24 minutos , Antoni dijo:

Así funciona:

'------------------------------------------------------------------
Private Sub Guardar_Click()
   With ActiveWorkbook.Names
      .Add Name:="ALBARÁN", RefersTo:=TextBox1, Visible:=False
      .Add Name:="PEDIDO", RefersTo:=TextBox2, Visible:=False
      .Add Name:="FACTURA", RefersTo:=TextBox3, Visible:=False
      .Add Name:="ASIENTO", RefersTo:=TextBox4, Visible:=False
      .Add Name:="Genero1", RefersTo:=OptionButton1, Visible:=False
      .Add Name:="Genero2", RefersTo:=OptionButton2, Visible:=False
   End With
   Unload Me
End Sub
'-------------------------------------------------------------------
Private Sub UserForm_Initialize(): On Error Resume Next
    TextBox1 = [ALBARÁN]
    TextBox2 = [PEDIDO]
    TextBox3 = [FACTURA]
    TextBox4 = [ASIENTO]
    OptionButton1.Value = [Genero1]
    OptionButton2.Value = [Genero2]
End Sub

 

Gracias @Antonilo probaré.

Juraría que ya lo había probado, sin el bloque With claro.

Saludos ?

Link to comment
Share on other sites

  • 7 months later...
En 15/8/2023 at 19:25 , Antoni dijo:

Me parece que te complicas la vida, la forma más habitual de guardar datos es en una hoja oculta, pero también se puede hacer con nombres.

Con hoja oculta sería algo así:

  • Columna A-Nombre formulario/Variable
  • Columna B-Nombre control
  • Columna C-Valor 1
  • Columna D-Valor 2
  • Columna E-Valor 3
  • ......

Te dejo un ejemplo con nombres.

 

Variables fijas.xlsm 23.19 kB · 21 descargas

Hola Antoni, estoy teniendo problemas con esto:

image.thumb.png.2bf7bd16d73277de78efe6cf5f241152.png

Cuanto intento guardar datos y estos llevan "=" lo interpreta como fórmula y me genera error, tienes alguna idea que me permita introducir cualquier tipo de datos?

Saludos

Variables fijas (1).xlsm

Link to comment
Share on other sites

Con este procedimiento:

If Not TextBox5.Text = "" Then
    ActiveWorkbook.Names.Add Name:="Html", RefersTo:="'" & TextBox5.Text & "'", Visible:=False
End If

funciona siempre y cuando no nos pasemos de un determinado numero de caracteres.😔

Y así no me sirve.

Si a alguien se le ocurre algo ¿?

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • 105 ¿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
  • Files

  • Download Statistics

    • Files
      184
    • Comments
      95
    • Reviews
      27

    More information about "Un juego solitario en Excel"
    Latest File
    By pegones1

    3    0

  • Crear macros Excel

  • Posts

    • analiza tu adjunto en devolucion con funciones de matriz dinamica (m365), adapte (tambien) los 'unicos' por funciones m365 si alguna funcion no la tienes disponible, comenta, para buscar otros medios de solucion suma varia hojas (ayudaExcel).xlsx
    • Hola buenas noches!,   De antemano muchas gracias por el apoyo que me brindan, tengo la siguiente situación   les anexo la base de datos   son dos sucursales y necesito que en la hoja reporte aparezca la suma de la columna "G", tomando como criterio la columna "B", en esta hoja de reporte ya aparecen los clientes unicos, porque hay ocasiones que se repiden en las sucursales     espero me puedan ayudar,    Gracias EJEMPLO REPORTE.xlsx
    • Que tal nuevamente, adjunto el archivo corregido según lo indicado. Espero le sea útil. N° DE DIAS (SOLUCION).xlsm
    • Buenas noches estimados espero estén bien Dentro del Formulario VTL (frmvtl) estan los TextBox 16, 17, 18, 19, 20, 21, 22 los cuales necesito que cuando contengan un valor cualquiera la macro los tome como 1 (TextBox<>””=1) y cuando los TextBox estén vacíos la macro los tome como 0 (TextBox=””=0) seria como usar la Función Contar de Excel, siendo así y conforme al funcionamiento de la Macro Calculo en el TextBox23 en la medida que se van introduciendo los datos el conteo o suma debe reflejarse de manera automática y simultánea en los Textbox 25, 27, 28, 29, de la siguiente manera: TextBox25 = TextBox16 +TextBox17+TextBox18+TextBox19+TextBox20+TextBox21+TextBox22 TextBox27 = TextBox16 +TextBox17+TextBox18+TextBox19+TextBox20+TextBox21+TextBox22 TextBox28 = TextBox27 TextBox29 = TextBox21+TextBox22 Por último, necesito que el resultado de la siguiente formula: SUMPRODUCT(('USUARIOS & PRIVILEGIOS'!$BS27:BS56>=EOMONTH(TODAY(),-1)+1)*('USUARIOS & PRIVILEGIOS'!$BS27:BS56<=EOMONTH(TODAY(),0))) Se refleje en el TextBox31 está formula ya la he utilizado en otras partes de mi proyecto dentro de un Funcion Select Case en conjunto con la Función Evaluate pero en este caso que es una única fórmula no sé cómo hacerla funcionar, el resultado esperado para el mes de Octubre es TextBox31 = 1 HHE PRUEBA.xlsm
    • Saludos cordiales, Le recomiendo volver a plantear su consulta y si lo que busca son ideas en VBA publiquelo en la sección del foro correspondiente a VBA.
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy