Saltar al contenido

Recommended Posts

publicado

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

publicado (editado)

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

Editado el por Antoni
publicado (editado)

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

Editado el por Benito Bartolomé
publicado
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.

publicado
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 ?

publicado

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) '
publicado (editado)
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

Editado el por Benito Bartolomé
publicado (editado)

Hola a todos:

En el archivo que subí, los Name  ya se crean ocultos (,Visible:=False).

Saludos

 

Editado el por Antoni
publicado
hace 25 minutos , Antoni dijo:

Hola a todos:

En el archivo que subí, los Name  ya se crean ocultos (,Visible:=False).

Saludos

 

Sí, ya lo vi en el primer post y me llamó la atención.

Como siempre vas un paso por delante ?.

Bueno "uno" me quedé corto ?

publicado (editado)
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

Editado el por Benito Bartolomé
publicado

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

 

publicado
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 ?

publicado
hace 15 minutos , Benito Bartolomé dijo:

Gracias @Antonilo probaré.

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

Saludos ?

Recuerda lo que dice la Navaja de Ockham, la solución más sencilla, acostumbra a ser la correcta.

  • 7 months later...
publicado
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

publicado

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 ¿?

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.