Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/09/2011, 09:27
Avatar de rid501
rid501
 
Fecha de Ingreso: agosto-2011
Mensajes: 244
Antigüedad: 12 años, 8 meses
Puntos: 30
Respuesta: transferir datos de una celda a otra en otra hoja

En Hoja1 tenemos:
CeldaA1 PRODUCTO y en CeldaB1 CANTIDAD
CeldaA2 Lápices
CeldaA3 Cuadernos
CeldaA4 Pinceles
....etc ...
La columna B esta vacia porque ahí introduciremos las cantidades que queremos que se acumlen en la Hoja2

El diseño de la Hoja2, en este ejemplo, es similar al de Hoja1:
CeldaA1 PRODUCTO y en CeldaB1 CANTIDAD_ACUMULADA
CeldaA2 Lápices
CeldaA3 Cuadernos
CeldaA4 Pinceles
....etc ...


El siguiente código lee todas las cantidades introducidas en la columna B de la Hoja1 y a que artículo estan asignadas y las acumula a las cantidades ya existentes del mismo articulo en la columna B de la Hoja2.

No es necesario que la lista de articulos esté ordenada pero si que sea una lista consecutiva sin celdas intermedias en blanco.

Al final del proceso se limpia la columna B de la Hoja1 para poder introducir más cantidades

Código:
Dim Articulo
Dim Cantidad

Sub Acumular()
    I = 2
    Do While Sheets(1).Cells(I, 1) <> Empty
        Cantidad = Sheets(1).Cells(I, 2)
        If Cantidad <> Empty Then
            Articulo = Sheets(1).Cells(I, 1)
            BuscarEnHoja2
        End If
        I = I + 1
    Loop
    Limpiar
End Sub

Sub BuscarEnHoja2()
    J = 2
    Do While Sheets(2).Cells(J, 1) <> Empty
        If Articulo = Sheets(2).Cells(J, 1) Then
            Sheets(2).Cells(J, 2) = Sheets(2).Cells(J, 2) + Cantidad
        End If
        J = J + 1
    Loop
End Sub

Sub Limpiar()
    I = 2
    Do While Sheets(1).Cells(I, 1) <> Empty
        Sheets(1).Cells(I, 2) = Empty
        I = I + 1
    Loop
End Sub