H o l a:
Te anexo la macro del botón "Ingresar" para la primera estimación:
Private Sub CommandButton3_Click() 'PARA INSERTAR DATOS DE LAS ESTIMACIONES
'Act. Por. Dante Amor
'Sheets("Obra"). Unprotect "abc"
'Application.ScreenUpdating = False
For Each h In Sheets
n = h.Name
If UCase(h.Name) = UCase(ComboBox1) Then
existe = True
Exit For
End If
Next
If existe = False Then
MsgBox "la hoja seleccionada no existe", vbCritical, "SELECIONAR HOJA"
Exit Sub
ComboBox1.SetFocus
End If
'------------------
Set h1 = Sheets(ComboBox1.Value) 'NUEVA FORMULA
Set b = h1.Columns("C").Find(what:=TextBox14, lookat:=xlWhole)
If b Is Nothing Then
MsgBox "El dato no fue encontrado", vbOKOnly + vbInformation, "Aviso"
TextBox14.SetFocus
Exit Sub
End If
'-------------
Select Case Label17
Case "1"
h1.Cells(18, "K") = "ESTIMACION, 1"
h1.Cells(19, "K") = "CANT"
h1.Cells(19, "L") = "IMPORTE"
Set b = h1.Columns("c").Find(TextBox14, lookat:=xlWhole)
If Not b Is Nothing Then
If TextBox15 = "" Then t15 = 0 Else t15 = CDbl(TextBox15.Value)
If TextBox16 = "" Then t16 = 0 Else t16 = CDbl(TextBox16.Value)
If TextBox17 = "" Then t17 = 0 Else t17 = CDbl(TextBox17.Value)
h1.Cells(b.Row, "K") = t16
h1.Cells(b.Row, "L") = t17
TextBox18 = t15 + t17
TextBox18 = Format(TextBox18, "#.00")
End If
Case "2"
h1.Cells(18, 13) = "ESTIMACION, 2"
h1.Cells(19, 13) = "CANT"
h1.Cells(19, 14) = "IMPORTE"
Set b = h1.Columns("c").Find(TextBox14, lookat:=xlWhole)
If Not b Is Nothing Then
h1.Cells(b.Row, "M") = Val(TextBox16)
h1.Cells(b.Row, "N") = Val(TextBox17)
TextBox18 = TextBox15 + TextBox17
'SUMAR(N22:N1000)
End If
Case "3"
h1.Cells(18, 15) = "ESTIMACION, 3"
h1.Cells(19, 15) = "CANT"
h1.Cells(19, 16) = "IMPORTE"
If Not b Is Nothing Then
h1.Cells(b.Row, "O") = Val(TextBox16)
h1.Cells(b.Row, "P") = Val(TextBox17)
'SUMAR(P22:P1000)
End If
End Select
'-----------------
If TextBox10 = "" Then t10 = 0 Else t10 = CDbl(TextBox10)
If TextBox16 = "" Then t16 = 0 Else t16 = CDbl(TextBox16)
TextBox17 = t16 * t10
TextBox17 = Format(TextBox17, "#.00")
'Se suma los importes de todas las estimaciones y se refleja en TxBx13
TextBox15 = h1.Range("L" & b.Row) + h1.Range("N" & b.Row) + h1.Range("P" & b.Row) + h1.Range("R" & b.Row) + h1.Range("T" & b.Row) + h1.Range("v" & b.Row) + h1.Range("x" & b.Row) + h1.Range("Z" & b.Row) + h1.Range("AB" & b.Row) + h1.Range("AD" & b.Row) + h1.Range("AF" & b.Row) + h1.Range("AH" & b.Row) + h1.Range("AJ" & b.Row) + h1.Range("AL" & b.Row) + h1.Range("AN" & b.Row) + h1.Range("AP" & b.Row) + h1.Range("AR" & b.Row) + h1.Range("AT" & b.Row) + h1.Range("AV" & b.Row) + h1.Range("AX" & b.Row) + h1.Range("AZ" & b.Row) + h1.Range("BB" & b.Row) + h1.Range("BD" & b.Row) + h1.Range("BF" & b.Row) + h1.Range("BH" & b.Row) + h1.Range("BJ" & b.Row) + h1.Range("BL" & b.Row) + h1.Range("BN" & b.Row) + h1.Range("BP" & b.Row) + h1.Range("BR" & b.Row)
TextBox15 = Format(TextBox15, "#.00")
'Y Esta suma-resultado se escribe en la celda J
If TextBox15 = "" Then t15 = 0 Else t15 = CDbl(TextBox15)
h1.Range("J" & b.Row) = t15
'Y Esta suma-resultado se escribe en la celda I
TextBox13 = h1.Range("K" & b.Row) + h1.Range("M" & b.Row) + h1.Range("O" & b.Row) + h1.Range("Q" & b.Row) + h1.Range("S" & b.Row) + h1.Range("U" & b.Row) + h1.Range("W" & b.Row) + h1.Range("Y" & b.Row) + h1.Range("AA" & b.Row) + h1.Range("AC" & b.Row) + h1.Range("AE" & b.Row) + h1.Range("AG" & b.Row) + h1.Range("AI" & b.Row) + h1.Range("AK" & b.Row) + h1.Range("AM" & b.Row) + h1.Range("AO" & b.Row) + h1.Range("AQ" & b.Row) + h1.Range("AS" & b.Row) + h1.Range("AU" & b.Row) + h1.Range("AW" & b.Row) + h1.Range("AY" & b.Row) + h1.Range("BA" & b.Row) + h1.Range("BC" & b.Row) + h1.Range("BE" & b.Row) + h1.Range("BG" & b.Row) + h1.Range("BI" & b.Row) + h1.Range("BK" & b.Row) + h1.Range("BM" & b.Row) + h1.Range("BO" & b.Row) + h1.Range("BQ" & b.Row)
TextBox13 = Format(TextBox13, "#.00")
If TextBox13 = "" Then t13 = 0 Else t13 = CDbl(TextBox13)
h1.Range("I" & b.Row) = t13
'FALTA CODIGO PARA SUME LA COLUMNA J DE SUMA DE LA ESTIMACION EN COMENTO
'Sheets("Obra").Protect "abc"
'¿TextBox16.SetFocus
'TextBox14 = ""
TextBox14.SetFocus
End Sub
Revisa cómo resolví la primera estimación para que lo repliques en las estimaciones 2 y 3.
También ajusté el código en el botón "Buscar":
Private Sub CommandButton2_Click() 'BUSCAR IDENTIFICACION CONCEPTO ALFANUMERICO
'DE OBRA
'Application.ScreenUpdating = False
For Each h In Sheets
n = h.Name
If UCase(h.Name) = UCase(ComboBox1) Then
existe = True
Exit For
End If
Next
If existe = False Then
MsgBox "La hoja seleccionada no existe", vbCritical, "SELECCIONAR OBRA"
ComboBox1.SetFocus
Exit Sub
End If
'--------------------
Set h1 = Sheets(ComboBox1.Value)
Label17 = h1.Range("C18")
Set b = h1.Columns("C").Find(what:=TextBox14, lookat:=xlWhole) ', LookIn:=xlValues) ¿ESTA FUNCIONA CON TextBox
If Not b Is Nothing Then
TextBox8 = h1.Range("D" & b.Row)
TextBox9 = h1.Range("E" & b.Row)
TextBox10 = h1.Range("G" & b.Row)
TextBox11 = Format(h1.Range("F" & b.Row).Value, "#.00")
TextBox12 = Format(h1.Range("H" & b.Row).Value, "#.00")
TextBox13 = Format(h1.Range("I" & b.Row).Value, "#.00")
TextBox15 = Format(h1.Range("J" & b.Row).Value, "#.00")
'------------
If TextBox19 = 0 Or TextBox19 = "" Then 'correcto
MsgBox "El Concepto no presenta estimación," & Chr(13) & "Deseas capturar la primara estimación...? .", vbOKOnly + vbInformation + vbYesNo '"Aviso"
'si la respuesta es si, then
Range("b" & Cells.Rows.Count).End(xlUp).Offset(1).Select
ActiveCell.Offset(16, 1) = "1"
Else
ActiveCell.Offset(16, 1) = " "
Exit Sub
End If
'------------
TextBox16.SetFocus 'ok
'------------
Else
MsgBox "El Dato no fue encontrado." & Chr(13) & "Intente de nuevo.", vbOKOnly + vbInformation, "Aviso"
TextBox14 = "" 'ok
TextBox14.SetFocus 'ok
End If
'----------------------------------
h1.Cells(18, 11) = "ESTIMACION, 1"
h1.Cells(19, 11) = "CANT"
h1.Cells(19, 12) = "IMPORTE"
Application.ScreenUpdating = True
TextBox16 = ""
TextBox17 = ""
End Sub
' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )