Fórmulas y formato de textbox como se hacen

Estoy realizando un archivo con macros y me ha surgido varias casos

1. A un textbox le agregue una fórmula para que me busque una valor en una base y me traiga el valor a el textbox2; pero quiero que el textbox2 me traiga ese valor y no me lo deje modificar a menos que en el textbox1 se cambie el código es más o menos un buscar v pero con vb y que en el caso que el código no se encuentre en la base me muestre un mensaje de advertencia

Este es el código que tengo que me trae el valor al textbox2 pero me me permite agregar más letras a este textbox

Private Sub textbox1_AfterUpdate()
Set h = Sheets("BASE DE DATOS")
Set b = h.Columns("A").Find(textbox1)
If Not b Is Nothing Then
textbox2 = h.Cells(b.Row, "B")
End If
End Sub

2. Tengo un DTPicker1 y deseo que la fecha que se encuentra en el, quede copiada en una hoja y celda especifica(ejemplo en la hoja1 celda e3). Y que ese DTPicker1 quede en blanco hasta tanto no se le de opción de escoger una fecha.

Respuesta
1

H o la: Te regreso los códigos.

Para poner un mensaje en caso de que no se encuentre en la base de datos:

Private Sub textbox1_AfterUpdate()
    Set h = Sheets("BASE DE DATOS")
    Set b = h.Columns("A").Find(TextBox1)
    TextBox2 = ""
    If Not b Is Nothing Then
        TextBox2 = h.Cells(b.Row, "B")
    Else
        MsgBox "No existe el dato", vbExclamation, "BUSCAR EN LA BASE"
        TextBox1.SetFocus
    End If
End Sub

Para que no puedas modificar el textbox2, puedes desactivarlo al iniciar el formulario, agrega el siguiente evento:

Private Sub UserForm_Activate()
    TextBox2.Locked = True
End Sub

También puedes activar la propiedad Locked desde las propiedades del textbox2.


Pon lo siguiente para pasar el valor del DTPicker a una celda:

Private Sub CommandButton1_Click()
    Set h = Sheets("BASE DE DATOS")
    h.Range("D5") = DTPicker1.Value
    DTPicker1.Value = ""
End Sub

Para que el DTPicker quede "en blanco" deberás cambiar la propiedad Checkbox del DTPicker a True, puedes hacerlo desde el evento Activate:

Private Sub UserForm_Activate()
    TextBox2.Locked = True
    DTPicker1.CheckBox = True
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Tengo un textbox1 que quiero que el texto que le coloque me lo coloque en una celda al pasar al textbox2

En propiedades del textbox1 en dato y hay en controlsource le coloque la celda que quiero, ¿pero al momento de que la macro da la operación de borrar todos los textbox que tengo y vuelvo a ingresar texto al textbox1 en la celda no lo cambia que puedo hacer hay?

No estoy entendiendo qué quieres.

Te envié 4 códigos para lo que pediste.

Mejor empecemos paso a paso, en lugar de hacer varias peticiones, realiza una sola petición y nos concentramos en esa petición.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas