Ver Mensaje Individual
  #21 (permalink)  
Antiguo 01/02/2011, 11:54
Avatar de mrocf
mrocf
 
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Ayuda!!! suma de dias de un rango de fechas que se traslapan o no

En ese caso se simplifican las cosas. Por ejemplo, para una estructura de datos como:


podrías intentar:

Código vb:
Ver original
  1. Sub Macro787()
  2. Dim LastRow As Long, C As Range
  3. Application.ScreenUpdating = False
  4. ' Determino última fila
  5. LastRow = [a1].End(xlDown).Row
  6. ' Para el cálculo necesito que las columnas A y B estén ordenadas.
  7. Range("A1:B" & LastRow).Sort Key1:=[a1], Order1:=xlAscending, _
  8.   Key2:=[b1], Order2:=xlAscending, Header:=xlNo
  9. [AM1:AN1] = [a1:b1].Value
  10.  
  11. For Each C In Range("A2:A" & LastRow)
  12.   Select Case C < [an65536].End(xlUp)
  13.     Case True
  14.       If C.Offset(, 1) > [an65536].End(xlUp) Then [an65536].End(xlUp) = C.Offset(, 1)
  15.     Case False
  16.       [am65536].End(xlUp).Offset(1).Resize(, 2) = C.Resize(, 2).Value
  17.   End Select
  18. Next C
  19. ' Muestro el dato en D1
  20. With [am65536].End(xlUp)
  21.   [d1] = Evaluate("SUMPRODUCT( 1 + AN1:AN" & .Row & " - AM1:AM" & .Row & ")")
  22. End With
  23.  
  24. ' Elimino columnas AM:AN pues cumplieron su cometido
  25. [AM1:AN1].EntireColumn.Delete
  26. Application.ScreenUpdating = True
  27. End Sub

¿Es lo que estabas buscando?
Saludos, Cacho.

Última edición por mrocf; 01/02/2011 a las 12:04