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

[0] Índice de Mensajes

Ir a la versión completa