Como inserto una fórmula en este formulario

Tengo un excel donde llamo una lista por medio de un forms

En la tabla de datos del libro de excel tengo una fórmula que me los contabiliza y funciona perfectamente

La fórmula es:

=SUBTOTALES(3;G:G)-1

Como hago para pasar esta fórmula para que también me lo contablice en el forms

Este es el forms

1 Respuesta

Respuesta
2

Necesitaría saber cómo se rellena la lista. Si es indicándole la propiedad RowSource o llenando fila por fila.

Si fuese este último caso, lo que debieras hacer en cada pase, es ir acumulando en una variable el dato de la columna G. Una vez hecha toda la carga mostrarás en algún Label (o el control que tengas) ese total.

Si no es este tu caso, dejá aquí por favor tu código de relleno de la lista.

* Aprovecha la promoción de fin de año en manuales!

GRACIAS

EL código del formulario de la imagen es:

--------------------------------------------------------------------------

Option Explicit
'
Dim a As Variant
'
Sub Cargar_Lista()
  Dim b As Variant, c As Variant
  Dim i As Long, j As Long, k As Long
  Dim cmb1 As String, txt1 As String, txt2 As String
  '
  ReDim b(1 To UBound(a, 1), 1 To 7)
  Lista.Clear
  '2 programa, 3 tec, 4 mun, 5 nomb, 7 fec, 10 %   12 proxifech
  For i = 1 To UBound(a, 1)
    If ComboBox1.Value = "" Then cmb1 = a(i, 2) Else cmb1 = ComboBox1.Value
    If TextBox1.Value = "" Then txt1 = a(i, 3) Else txt1 = TextBox1.Value
    If TextBox2.Value = "" Then txt2 = a(i, 4) Else txt2 = TextBox2.Value
    If LCase(a(i, 2)) = LCase(cmb1) And _
       LCase(a(i, 3)) Like LCase(txt1) & "*" And _
       LCase(a(i, 4)) Like LCase(txt2) & "*" Then
      j = j + 1
      b(j, 1) = a(i, 3)
      b(j, 2) = a(i, 4)
      b(j, 3) = a(i, 5)
      b(j, 4) = a(i, 7)
      b(j, 5) = a(i, 8)
      b(j, 6) = a(i, 12)
      b(j, 7) = a(i, 14)
    End If
  Next
  If j > 0 Then
    ReDim c(1 To j, 1 To 7)
    For i = 1 To j
      For k = 1 To 7
        c(i, k) = b(i, k)
      Next
    Next
    Lista.List = c
  End If
End Sub
'
Private Sub ComboBox1_Change()
  Call Cargar_Lista
End Sub
Private Sub TextBox1_Change()
  Call Cargar_Lista
End Sub
Private Sub TextBox2_Change()
  Call Cargar_Lista
End Sub
Private Sub UserForm_Activate()
   Dim lr As Long
  If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
  lr = Cells.Find("*", , xlValues, xlPart, xlByRows, xlPrevious).Row
  a = Range("A4:P" & lr).Value
  Call Cargar_Lista
  busqueda = Format(Now, "[$-80A]dddd, DD"" de ""mmmm"" de ""yyyy   hh:mm:ss am/pm")
End Sub

Noto que el subtotal, es la cuenta de registros filtrados. Y este valor te lo dará la variable 'j'

Por lo tanto podrías agregar una instrucción al final, en la macro 'Cargar_Lista':

    Lista.List = c
    Label1.Caption = j      'SUBTOTALES
  End If
End Sub

Ajustá el nombre del control que recibirá este total. En mi ejemplo es Label1.

me sale error, y la variable j esta definida

Qué pena pero el sitio no nos está enviando notificaciones... ¿ya lo resolviste?

Porque justo el mensaje tapa esa línea, pero se puede observar que luego de j hay algo más ... quizás es un comentario al que le falta la comilla ' o un texto que no corresponde.

Si el tema está resuelto no olvides marcar una valoración para que ya se me quede como cerrada.

Sdos. Y buen año!

Elsa

Buen día,, estab por fuera

Vos dice : "pero se puede observar que luego de j hay algo más .."

R/ es el comentario: 'subtotales

Te envié mi modelo... solo copia lo del Label que agregué según muestro en imagen anterior.

Ajustá los nombres a tus controles (nombre del Label).

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas