Como mirar la información de una celdaen un textbox

Soy yo de nuevo
La situación es la siguiente: estoy trabajando en un formulario "Userform1", tengo un textbox llamado "textbox7_Change()" y una hoja llamada "VENTA", en la hoja hay una celda "c9" que tiene una fórmula.
Deseo que el al momento de activar el formulario me aparezca en el textbox7 la informaíon que está en la celda "c9" de la hoja "venta".

1 Respuesta

Respuesta
1
Con respecto al campo, se debe hacer una diferencia entre el nombre del textbox y un evento del textbox.
En tu caso, el nombre del textbox es "textbox7", siendo "textbox7_Change()" un evento de "textbox7" que se dispara cuando haces un cambio en el contenido dicho campo.
Ahora, respondiendo a tu pregunta:
Si en el editor de visual basic haces doble click sobre el "UserForm1" te aparecerá la venta de código para el formulario. Allí debes escribir lo siguiente:
Private Sub UserForm_Initialize() 'Evento _Initialize del formulario
    me.textbox7.text = Sheets("venta").cells(9,"C") 'Asignar el valor de C9 de la hoja venta a textbox7
End Sub
Aún más sencillo:
Selecciona el textBox (textBox7) y en la hoja de propiedades buscas la propiedad ControlSource y le asignas el valor C9, de esta forma enlazar directamente el contol a dicha celda.
Cuando escribo lo que me dices e intento ejecutar la macro me sale lo siguiente "Se ha producido el error ´13´en tiempo de ejecución: No coinciden los tipos."
Si te sirve le algo esto es lo que tengo
Private Sub CommandButton1_Click()
Range("a9:g9").Select
Selection.Copy
Range("a13").Select
While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Range("A1").Select
Wend
ActiveSheet.Paste
Range("a9").Select
Application.CutCopyMode = False
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
TextBox6 = Empty
TextBox3.SetFocus
End Sub
Private Sub Label2_Click()
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub TextBox3_Change()
Range("a9").Select
ActiveCell.FormulaR1C1 = Val(TextBox3)
End Sub
Private Sub TextBox2_Change()
Range("b9 ").Select
ActiveCell.FormulaR1C1 = Val(TextBox2)
End Sub
Private Sub TextBox4_Change()
Range("d9").Select
ActiveCell.FormulaR1C1 = Val(TextBox4)
End Sub
Private Sub TextBox5_Change()
Range("e9").Select
ActiveCell.FormulaR1C1 = Val(TextBox5)
End Sub
Private Sub TextBox6_Change()
Range("f9").Select
ActiveCell.FormulaR1C1 = Val(TextBox6)
End Sub
Private Sub TextBox7_Change()
End Sub
Private Sub UserForm_Click()
End Sub.
Y hay un modulo que me abre automaticamente el formulario cuando abro el libro
Sub Auto_open()
Load UserForm1
UserForm1.Show
End Sub
Copié, pegué y funciona perfecto, no sé en qué lugar te pueda estar enviando ese error.
'Esto lo puse en el código del formulario
Private Sub CommandButton1_Click()
    Range("a9:g9").Select
    Selection.Copy
    Range("a13").Select
    While ActiveCell.Value <> ""
    ActiveCell.Offset(1, 0).Range("A1").Select
    Wend
    ActiveSheet.Paste
    Range("a9").Select
    Application.CutCopyMode = False
    TextBox2 = Empty
    TextBox3 = Empty
    TextBox4 = Empty
    TextBox5 = Empty
    TextBox6 = Empty
    TextBox3.SetFocus
End Sub
Private Sub TextBox3_Change()
Range("a9").Select
ActiveCell.FormulaR1C1 = Val(TextBox3)
End Sub
Private Sub TextBox2_Change()
Range("b9 ").Select
ActiveCell.FormulaR1C1 = Val(TextBox2)
End Sub
Private Sub TextBox4_Change()
Range("d9").Select
ActiveCell.FormulaR1C1 = Val(TextBox4)
End Sub
Private Sub TextBox5_Change()
Range("e9").Select
ActiveCell.FormulaR1C1 = Val(TextBox5)
End Sub
Private Sub TextBox6_Change()
Range("f9").Select
ActiveCell.FormulaR1C1 = Val(TextBox6)
End Sub
Private Sub UserForm_Initialize() 'Evento _Initialize del formulario
    Me.TextBox7.Text = Sheets("venta").Cells(9, "C") 'Asignar el valor de C9 de la hoja venta a textbox7
End Sub

'Y esto en un módulo
Sub Auto_open()
Load UserForm1
UserForm1.Show
End Sub
'Y todo funciona sin errores.
Apreció mucho tu ayuda. Copié todo como me lo escribiste pero no pasó nada, si puedes y tú me lo permites, te envío el archivo a tu correo para que le des un vistazo, claro está si se puede. Para que mires el error. Y en el correo vuelvo y te explico lo que quiero,
De todas formas si no se puede te califico excelente. Porque haz sido muy amable
Envíame el archivo a [email protected].
Ya le envíe el correo el mío es [email protected]
Te envíe el archivo...
Si estás conforme, no olvides cerrar el tema.
No se si es que a mi computador le falta instalar algo, pero a mi no me funciona el formulario, todo sigue igual. Detonas forma creo que no te molestaré más, parece que estoy abusando de usted, eres buena persona, que el Señor te Bendiga y lo valoraré como excelente. Si de pronto encuentra la razón por la que no me el formulario funciona, tu tienes mi correo.
Vamos, tiene que funcionar!
Este es el código que tiene que estar en el formulario:
Private Sub CommandButton1_Click()
    'Asignar el valor de los campos a las celdas
    Cells(9, "a").FormulaR1C1 = Val(TextBox3)
    Cells(9, "b").FormulaR1C1 = Val(TextBox2)
    Cells(9, "d").FormulaR1C1 = Val(TextBox4)
    Cells(9, "e").FormulaR1C1 = Val(TextBox5)
    Cells(9, "f").FormulaR1C1 = Val(TextBox6)
    'Tu código
    Range("a9:g9").Select
    Selection.Copy
    Range("a13").Select
    While ActiveCell.Value <> ""
        ActiveCell.Offset(1, 0).Range("A1").Select
    Wend
    ActiveSheet.Paste
    Range("a9").Select
    Application.CutCopyMode = False
    TextBox2 = Empty
    TextBox3 = Empty
    TextBox4 = Empty
    TextBox5 = Empty
    TextBox6 = Empty
    TextBox3.SetFocus
End Sub
Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
         Me.TextBox7 = buscarProd(Me.TextBox3, "B") 'Agregar producto
         Me.TextBox1 = buscarProd(Me.TextBox3, "D") 'Agregar precio
    End If
End Sub
Private Sub TextBox4_Change()
    Me.TextBox8 = CCur("0" + Me.TextBox1) * CCur("0" + Me.TextBox4)
End Sub

'Y este es el código que tiene que estar en el módulo.
Sub Auto_open()
Load UserForm1
UserForm1.Show
End Sub
'Retorna el valor de la celda resultante entre la fila en que fue encontrado el código
'y la columna que se ingrese, por defecto, la columna A
Public Function buscarProd(codigo, Optional strCol As String = "A") As String
    filasUsadas = Sheets("PRODUCTOS").UsedRange.Rows.Count 'Contar cewldas usadas de la hoja productos
    'Buscar si el código es numérico
    If IsNumeric(codigo) Then
        Set resulta = Sheets("PRODUCTOS").Range("A3:A" & CStr(filasUsadas)).Find(CInt(codigo), LookIn:=xlValues, LookAt:=xlWhole)
    End If
    'Si fue encontrado un valor, devolver el contenido del campo pedido
    If Not resulta Is Nothing Then
        buscarProd = Sheets("PRODUCTOS").Cells(resulta.Row, strCol)
    Else
        'Si no fue encontrado, devolver vacío.
        buscarProd = ""
    End If
End Function
'Si está eso y aun así no funciona, me declaro incompetente en este caso.
Se me olvidaba mencionar que debes ingresar el código, presionar <INTRO>, llenar los campos requeridos, presionar aceptar y veras el resultado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas