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

Asumiendo que las fechas se encontraran en las columnas A y B (al igual que lo que te mostrara en la fórmula base) y a partir de la celda A1, podrías intentar lo siguiente:

Código vb:
Ver original
  1. Sub Macro781()
  2. Dim LastRow As Long, Q As Long
  3. Application.ScreenUpdating = False
  4.  
  5. ' Determino última fila
  6. LastRow = [a1].End(xlDown).Row
  7.  
  8. ' Defino "AL" como columna auxiliar. Para el cálculo necesito que la columna A
  9. ' esté ordenada.
  10. ' Al término del cálculo vuelvo al orden inicial mediante esta columna
  11. [AL1] = 1: [AL1].Resize(LastRow).DataSeries Type:=xlLinear
  12.  
  13. ' Ordeno según columna A
  14. Range("A1:AL" & LastRow).Sort Key1:=[a1], Order1:=xlAscending, Header:=xlNo
  15.  
  16. ' Fórmula Matricial en celda D1
  17. [d1].FormulaArray = "= SUMPRODUCT( B$1:B" & LastRow & " - A$1:A" & _
  18.   LastRow & " ) - SUMPRODUCT( IF( A$2:A" & LastRow & "<B$1:B" & _
  19.   LastRow - 1 & ", B$1:B" & LastRow - 1 & " - A$2:A" & LastRow & ", 0) )"
  20.  
  21. ' Traslado resultado a variable "Q"
  22. Q = [d1]: [d1].ClearContents
  23.  
  24. ' Ordeno según columna AL
  25. Range("A1:AL" & LastRow).Sort Key1:=[AL1], Order1:=xlAscending, Header:=xlNo
  26.  
  27. ' Elimino columna AL: cumplió su cometido
  28. [AL1].EntireColumn.Delete
  29. Application.ScreenUpdating = True
  30.  
  31. ' Muestro el dato en D1
  32. [d1] = Q
  33. End Sub

Saludos, Cacho.