Vínculos condicionados

Hola a todos: ya os pregunté como sumar vínculos de varias hojas y la respuesta fue satisfactoria pero ahora rizando el rizo os pregunto lo siguiente. Como puedo hacer para que me sume en la hoja total en el rango a1:a40, los valores que tengan en ese mismo rango las hojas cuyo valor de la celda b1 sea "A". Gracias por vuestra ayuda
Respuesta
1
Supongo que tienes una fórmula que más o menos es así, esto suma las celdas A1 de las hojas 1 y 2 en la hoja 3, =SUMA(Hoja1! A1, Hoja2! A1), claro si son más hojas pues tu fórmula apunta a más hojas. Ahora, la fórmula puede ser de varias maneras; por ejemplo, si sólo vas a checar el valor de la celda B1 de cada hoja, puedes hacer esto: =suma(si(Hoja1! B1="A",A1,0),si(Hoja2! B1="A", A1, 0)) esta fórmula lo que hace es primero en las condiciones regresar el valor de A1 si la celda B1 es igual a "A", si no, entonces regresa cero, de este modo la suma, sólo adicionará aquellos valores de las hojas que tengan "A" en B1. Espero esto te sirva, sino, pues explícame un poco más lo que estás buscando. Suerte!
ME DA ERROR EN ActiveSheet.Range("A1").Formula = "=SUM(" & TxtFormula & ")"
Perdona no compiñe bien la fórmula pero ahora ya está bien y no me da ningún error, la fórmula es correcta
Exactamente eso es lo que busco, pero como sería la macro si inicialmente solo tengo la hoja totalsuma y aún no se cuantas hojas insertaré (dependiendo de que se cumplan algunas condiciones) o puede que elimine algunas. Es decir que me lo haga automáticamente y no tener que cambiar la fórmula cada vez que haya cambios. Gracias por tu ayuda.
Ya está, el siguiente código tienes que asignárselo a un botón de comando que se llame "CommandButton1" y que debe encontrarse en la hoja "totalsuma" que me indicas, es muy importante que esta misma hoja sea SIEMPRE LA ÚLTIMA DEL LIBRO porque el código recorre el libro y desprecia sólo la última hoja para crear la fórmula, suerte!
Private Sub CommandButton1_Click()
Dim i As Integer
Dim TxtFormula As String
TxtFormula = ""
For i = 1 To Sheets.Count - 1 'este -1 sirve para que no icluya la hoja del total, por tanto cuida que siempre la hoja total, vaya al final del libro!!
TxtFormula = TxtFormula & "If(" & Sheets.Item(i).Name & "!B1 = " & Chr(34) & "A" & Chr(34) & "," & Sheets.Item(i).Name & "!A1 , 0),"
Next
TxtFormula = Left(TxtFormula, Len(TxtFormula) - 1)
ActiveSheet.Range("A1").Formula = "=SUM(" & TxtFormula & ")"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas