• Domingo 22 de Diciembre de 2024, 12:45

Autor Tema:  Tomar un dato de una celda espedifica  (Leído 2069 veces)

ikanni

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Tomar un dato de una celda espedifica
« en: Viernes 31 de Julio de 2009, 17:15 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Tomar un dato de una celda espedifica
« Respuesta #1 en: Domingo 2 de Agosto de 2009, 08:42 »
0
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
  1.  
  2.  
  3. Public Function IngresarProducto(color As Range, rango As Range) As Double
  4.  
  5. Dim suma As Double
  6. Dim numcolor As Variant
  7. Dim ElProducto As Double
  8. Dim prueba
  9.     Application.Volatile
  10.     suma = 0
  11.     numcolor = color.Interior.ColorIndex
  12.     For Each area In rango.Areas
  13.         For Each celda In area
  14.         'MsgBox (celda & celda(1, 2).Value)
  15.             If celda.Interior.ColorIndex = numcolor Then
  16.                 ElProducto = celda.Value * celda(1, 2).Value
  17.                 suma = suma + ElProducto
  18.             End If
  19.         Next
  20.     Next
  21.     IngresarProducto = suma
  22.  
  23. End Function
  24.  
  25.  
------------------
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