[VBA] DATES

DATES [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 12-06-2013 à 12:08:23    

Bonjour à tous,
 
(J'avoue que je n'étais pas très inspiré pour le titre :) )
 
Alors voila je dispose d'un tableau comme ci-dessous :
 
_______________________________________________________________________
             114             115  
              du               au
10      01/04/2013     15/05/2013
11     17/05/2013     30/05/2013
12      31/05/2013     20/06/2013
13      03/03/2013     20/03/2013
14
15    
_______________________________________________________________________
 
Je souhaite afficher les periodes manquantes entre la date la plus ancienne et la plus récente  
 
Ainsi, ici, je souhaite obtenir :
 
                                 252
4        -dates manquantes : du 15/05/2013 au 17/05/2013
5        -dates manquantes : du 20/03/2013 au 01/04/2013
 
 
 
J'essaye mais je n'obtiens pas les resultats esperes alors je m'adresse à vous  :hello:  pour avoir quelquels pistes ou methodes
 
Voici mon dernier essai :
 

Code :
  1. Cells(Rows.Count, 114).End(xlUp).Select
  2. der_SORTIE = ActiveCell.Row
  3. Cells(Rows.Count, 252).End(xlUp).Select
  4. der = ActiveCell.Row
  5. For cel = 4 To der
  6. Cells(cel, 252) = ""
  7. Next
  8.            
  9. cpt = 0
  10. compt = 1
  11.     For L1 = 10 To der_SORTIE
  12.         For L2 = 10 To der_SORTIE
  13.           If Cells(L1, 114) <> Cells(L2, 114) And Cells(L1, 115) <> Cells(L2, 115) And Cells(L1, 115) < Cells(L2, 114) Then
  14.             If Cells(L1, 115) < Cells(L2, 114) Then
  15.                 c = 0
  16.                 If L2 <> der_SORTIE Then
  17.                 For L3 = L2 To der_SORTIE
  18.                     If (Cells(L2, 114) - Cells(L1, 115)) < (Cells(L3, 114) - Cells(L2, 115)) Then
  19.                         c = 1
  20.                     End If
  21.                 Next
  22.                 End If
  23.                 If c = 0 Then
  24.                     If (Cells(L2, 114) - Cells(L1, 115)) > 1 Then
  25.                         Cells(Rows.Count, 252).End(xlUp).Select
  26.                         der = ActiveCell.Row
  27.                         Cells(der + 1, 252) = "    Dates manquantes du " & Cells(L1, 115) & " au " & Cells(L2, 114)
  28.                     End If
  29.                 End If
  30.             End If
  31.         End If
  32.     Next
  33. Next


 
 
J'obtiens :
 
_______________________________________________________________________
 
                                 252
4        -dates manquantes : du 14/05/2013 au 17/05/2013
5        -dates manquantes : du 14/05/2013 au 31/05/2013
6        -dates manquantes : du 20/03/2013 au 17/05/2013
7        -dates manquantes : du 20/03/2013 au 31/05/2013
_______________________________________________________________________


Message édité par glaspow le 12-06-2013 à 13:13:55
Reply

Marsh Posté le 12-06-2013 à 12:08:23   

Reply

Marsh Posté le 12-06-2013 à 14:55:31    

J'ai finalement réussi en faisant :
 

Code :
  1. Cells(Rows.Count, 114).End(xlUp).Select
  2. der_SORTIE = ActiveCell.Row
  3. For sup = 4 To 24
  4.     Cells(252, sup) = ""
  5. Next
  6. Cells(Rows.Count, 252).End(xlUp).Select
  7. der = ActiveCell.Row
  8. For cel = 4 To der
  9. Cells(cel, 252) = ""
  10. Next
  11.            
  12. cpt = 0
  13. compt = 1
  14.     For L1 = 10 To der_SORTIE
  15.     c = 0
  16.         For L2 = 10 To der_SORTIE
  17.           If Cells(L1, 114) <> Cells(L2, 114) And Cells(L1, 115) <> Cells(L2, 115) And Cells(L1, 115) < Cells(L2, 114) Then
  18.             If Cells(L1, 115) < Cells(L2, 114) Then
  19.                
  20.                 If c = 0 Then
  21.                 savv = Cells(L2, 114)
  22.                 c = c + 1
  23.                 ElseIf Cells(L2, 114) < savv Then
  24.                 savv = Cells(L2, 114)
  25.                 End If
  26.             End If
  27.           End If
  28.         Next
  29.                     If (savv - Cells(L1, 115)) > 1 Then
  30.                         Cells(Rows.Count, 252).End(xlUp).Select
  31.                         der = ActiveCell.Row
  32.                         Cells(der + 1, 252) = "    Archive du " & Cells(L1, 115) & " au " & savv & " à ajouter"
  33.                     End If
  34.            
  35. Next


 
 :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed