Apoyo para una macro que debe retornar el contenido de sus celdas en TxBx…
Dante
… Que ya es de las últimas, se trata de un control de pagos; estando en la Hoja1 en blanco, se llama al USERFORM1. 1°. Se selecciona la obra en un CbBx; 2°; en otro CbBx, el concepto de gasto. Con el botón “buscar” debe encontrar el concepto seleccionado y regresar en los TxBx 7 y 8 sus contenidos. Traté de componer varios códigos de otras macros pero algo falta para complementarlas. (El uso es Una hoja para cada “Obra”). Traté de hacer una descripción de cada paso en la macro como ya he visto en tus creaciones. Anexo la macro para mayor comprensión. De antemano agradezco sus atenciones.
Private Sub CommandButton4_Click() 'ESTE COMANDO ES SOLO PARA "BUSCAR" EN 2 FUENTES:
‘----
' LA 1°: BUSCA DATOS GENERALES DE LA OPCION SELECCIONADA (EN CbBx1; "Obra1") EN
‘ CELDAS FIJAS y los repone en los siguientes TxBx1, 2 y 3, (SOLO PARA IDENTIFICACION.)
Application.ScreenUpdating = False
Dim Rango
On Error Resume Next
TextBox1 = Sheets(ComboBox1.Value).Range("D3") ' OBRA
TextBox2 = Sheets(ComboBox1.Value).Range("D4") ' UBICACIÓN, LOCALIZACION
TextBox3 = Sheets(ComboBox1.Value).Range("D5") ' MUNICIPIO
‘ ESTA CORRE BIEN
'-----
' LA 2°: está en FRAME2: AL MISMO CLICK DE LA 1°, BUSCA EL "CONCEPTO DE GASTO" (SELECCIONADO EN CbBx3) Y REPONE SU CONTENIDO EN LOS TXBX 7 Y 8)
Worksheets("obra").Select
'Ya seleccionado la opción en "Concepto de gasto" en el combobox3, lo busca en el Rango ("B:C")
Set Rango = Range("B:C").Find(What:=ComboBox3, _
LookAt:=xlWhole, LookIn:=xlValues)
Range(Rango.Address).Select
' Si lo encuentra, Recorre la línea hasta las columnas 6 y 7 Y retorna su contenido.
ActiveCell.Offset(0, 6).Value = TextBox7.Value 'Col. G Pyto. De gasto
ActiveCell.Offset(0, 7).Value = TextBox8.Value 'Col. H Gasto acumulado
‘Realiza la operación de restar el TxBx7 menos el TxBx8 y el resultado lo repone al TxBx9
TextBox9 = TextBox7 - TextBox8
'ActiveCell.Offset(0, 8).Value = TextBox9 'Saldo
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then 'para que ponga números y no texto
KeyAscii = 0
'----
Application.ScreenUpdating = True
Sheets("hoja1").Select
End Sub