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".
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 de Isaac Reyes
1
1
Isaac Reyes, Es mejor enseñar a pescar que dar el pescado
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
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.
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
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.
'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
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]
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.
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.
- Compartir respuesta
- Anónimo
ahora mismo