Hola a todos,
Espero esten bien, escribo ya que apenas tengo pocos días aprendiendo a programar y lo hago para ayudarme con la elaboración de presupuestos (tema aparte). Lo cierto es que he avanzado en mi proyecto pero tengo ya rato sin avanzar ya que no consigo como automatizar algo, les explico lo que estoy necesitando con el mismo código que he elaborado, de antemano recuerden que soy principiante:
Sub AggMat()
Dim Mat As String
'ESTE INPUTBOX LO QUIERO CAMBIAR A UNA LISTA DESPLEGABLE, Y QUE SU RESULTADO SE VAYA A LA CELDA B11
Mat = InputBox("Descripción:", "Agregar material a partida")
ActiveSheet.Range("B11") = Mat
If Mat = "" Then
Else
'ESTE PROCEDIMIENTO A CONTINUACIÓN ES POR QUE INICIALMENTE NO HAY MATERIALES AGREGADOS, ENTONCES POR CADA MATERIAL QUE BUSQUE EN LA LISTA DESPLEGABLE CON ESTO LO LOGRE PASAR A LA FILA 12 Y ASÍ TENER LA 11 VACIA PARA AGREGAR UNO NUEVO (EN CUANTO A LA PRESENTACIÓN SE VE RARO YA QUE SIEMPRE ESTARÁ VACIA LA FILA 11, PERO NO SE COMO HACERLO DE OTRA MANERA JAJA
' Insertar fila nueva para material
Rows("11:11").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A12:G12").Select
Selection.AutoFill Destination:=Range("A11:G12"), Type:=xlFillDefault
Range("B11").Value = Empty
'ACA LE AGREGO FORMULAS DE COINCIDIR E INDICE PARA QUE EL TEXTO DE LA CELDA B11 SEA BUSCADO EN LA HOJA DE MATERIALES Y ME TRAIGO A ESTA HOJA SUS CARACTERISTICAS (CODIGO, UNIDAD, DEPRECIACIÓN Y PRECIO)
' InsertarCaracteristicasMat Macro
Range("A12").Select
ActiveCell.FormulaR1C1 = _
"=+IFERROR((INDEX('Mat&SubCon'!C:C[6],MATCH(RC2,INDEX('Mat&SubCon'!C:C[6],,MATCH(R[-2]C[1],'Mat&SubCon'!R1C1:R1C7,0)),0),MATCH(R10C1,'Mat&SubCon'!R1C1:R1C7,0))),"""")"
Range("C12").Select
ActiveCell.FormulaR1C1 = _
"=+IFERROR((INDEX('Mat&SubCon'!C[-2]:C[4],MATCH(RC2,INDEX('Mat&SubCon'!C[-2]:C[4],,MATCH(R[-2]C[-1],'Mat&SubCon'!R1C1:R1C7,0)),0),MATCH(R10C3,'Mat&SubCon'!R1C1:R1C7,0))),"""")"
Range("E12").Select
ActiveCell.FormulaR1C1 = _
"=+IFERROR((INDEX('Mat&SubCon'!C[-4]:C[2],MATCH(RC2,INDEX('Mat&SubCon'!C[-4]:C[2],,MATCH(R[-2]C[-3],'Mat&SubCon'!R1C1:R1C7,0)),0),MATCH(R10C5,'Mat&SubCon'!R1C1:R1C7,0))),"""")"
Range("F12").Select
ActiveCell.FormulaR1C1 = _
"=+IFERROR((INDEX('Mat&SubCon'!C[-5]:C[1],MATCH(RC2,INDEX('Mat&SubCon'!C[-5]:C[1],,MATCH(R[-2]C[-4],'Mat&SubCon'!R1C1:R1C7,0)),0),MATCH(R10C6,'Mat&SubCon'!R1C1:R1C7,0))),"""")"
'ACA LOGRO PONER A MULTIPLICAR LA CELDA DONDE IRÁ LA CANTIDAD (VALOR QUE SE LO AGREGO DESPUES DE FORMA MANUAL) POR EL COSTO DEL MATERIAL, PERO NO SE COMO PROGRAMAR PARA QUE LUEGO DE AGREGAR TODOS LOS MATERIALES (ES VARIABLE LA CANTIDAD DE MATERIALES) SE SUMEN TODOS MAS ABAJO (ADJUNTARÉ IMAGEN DE LA HOJA)
' MultiplicarCantidadPorCostoMat Macro
Range("G12").Select
ActiveCell.FormulaR1C1 = "=+IFERROR(RC[-3]*RC[-2],"""")"
Range("D12").Select
End If
End Sub
Adjunto | Tamaño |
---|---|
hoja_apu.jpg | 152.21 KB |
A pesar de no tener respuesta por acá, conseguí lo que necesitaba. Si alguien necesita resolver algo similar, escriba que con gusto lo ayudaré con lo poco que se.
Buenos días geron, me encuentro en el mismo problema, quisiera saber cómo le hiciste para agregar un comboBox dentro de un Inputbox. Gracias