Programación General > VBA
Tomar un dato de una celda espedifica
(1/1)
ikanni:
Hola a todos , soy nuevo en el foro.Estoy aprendidendo algo de excel y tengo un problemilla que no se resolver, haber si hay alguien que me pueda echar una manita.Seguro que es una tonteria pero me he atascado.... :hitcomp:
Bueno tengo em una hoja de calculo una celda que es la suma de una columna, pero una columna, tiene 10 filas, que hay una dato numerico, y algunas de esas celtas tienen el color de fondo de otro color.Bueno kla historia es que busque una funcion que me sumaría solo las que tienen ese color de fondo.Hasta ahi todo resuelto.Pero ahora necesito que esas casillas que tienen otro color de fondo la columna siguiente , hacia la derecha, tiene un dato y lo quiero tomar para hacer una multiplicacion....La funcion de buscar el color de fondo de las columnas lo tengo resuelto, ahorra necesito como "pillo" el dato de la derecha.Pego la funcion sumar por color y haber si alguien me ayuda, MIL GRACIAS DE ANTEMANO.
--------------------------------------
Public Function SumaColor(rango As Range) As Double
Dim suma As Double
Dim ElProducto As Double
Dim numcolor As Variant
Application.Volatile
suma = 0
For Each area In rango.Areas
For Each celda In area
If celda.Interior.ColorIndex = 15 Then
' Aqui es donde quiero pillar el dato de la columna de la derecha
'ElProducto= celda.value * Celda de la derecha
suma = suma + ElProducto
End If
Next
Next
SumaColor = suma
End Function
----------------------------------------------
ikanni:
Bueno, era lo que yo pensaba,!! una tonteria¡¡, pero bueno los principios a veces se te atascan....
Os pego como me funciona
--- Código: Text --- Public Function IngresarProducto(color As Range, rango As Range) As Double Dim suma As DoubleDim numcolor As VariantDim ElProducto As DoubleDim prueba Application.Volatile suma = 0 numcolor = color.Interior.ColorIndex For Each area In rango.Areas For Each celda In area 'MsgBox (celda & celda(1, 2).Value) If celda.Interior.ColorIndex = numcolor Then ElProducto = celda.Value * celda(1, 2).Value suma = suma + ElProducto End If Next Next IngresarProducto = suma End Function ------------------
Y se llama tal que asi.... =IngresarProducto("Celda que tiene el color de fondo", "Tu seleccion de celdas").....
Ejemplo:.... =IngersarProducto("$A$1";"B1:B10")
Espero Os sirva
Ikanni
Navegación
Ir a la versión completa