Insertion automatique d'une ligne des dates manquantes

Bonjour,

je souhaite avoir une macro qui me permet d'insérer automatiquement les dates manquantes exemple:

colonne date

01/01/2013
02/01/2013
04/01/2013
05/01/2013
08/01/2013
09/01/2013
10/01/2013

par exemple il manque ici les dates du 03/01/2013, du 06/01/2013 et du 07/01/2013

je suis débutant avec le VB, mais je souhaite avoir un code qui calcul la différence entre deux date si c'est supérieur à 1 donc il doit automatiquement ajouter une ligne

merci

7 réponses

  1. Bonjour,

    Voici un code qui devrai vous satisfaire, j'ai fais assez vite alors si vous avez besoin d'un coup de main pour comprendre ne pas hésiter

    Sub date_creation()
    Dim i As Integer
    Dim fin As Integer

    For i = 1 To 5000
    If Cells(i, 1) = "" Then fin = i: Exit For
    Next i

    For i = 1 To fin
    If Cells(i + 1, 1) <> Cells(i, 1).Value + 1 Then
    Rows(i + 1).Insert
    Cells(i + 1, 1) = Cells(i, 1) + 1
    End If
    Next i
    End Sub
    0
    1. Wow scinarf ca marche trop bien
      merci
      0
      1. Pas de soucis, hésitez pas si jamais il y a un soucis
        0
        1. Mr scinarf

          en faite vu que j'utilise des dates de jours ouvrables, j'utilise la fonction "=SERIE.JOUR.OUVR (A1;1) pour que quand j'incrémente ca ne m'affiche que les jours jours ouvrables

          comment je peux introduire cette condition dans le code que vous m'avez livré

          merci
          0
          1. Sub date_creation()
            Dim i As Integer
            Dim fin As Integer

            For i = 1 To 5000
            If Cells(i, 1) = "" Then fin = i: Exit For
            Next i

            For i = 1 To fin
            If Cells(i + 1, 1) <> SERIE.JOUR.OUVR (Cells(i, 1).Value,1) Then
            Rows(i + 1).Insert
            Cells(i + 1, 1) = Cells(i, 1) + 1
            End If
            Next i
            End Sub

            Essayer donc ca
            0
            1. encore merci ca marche comme par magie ;)
              0
              1. Logiquement il devrait ne pas marcher pour les jours fériés qui tombe sur un jour ouvré.

                Mais au moins l'erreur est connu. Donc faire attention.
                0
                1. Salut Scinarf

                  Je ne sais pas, mais j'ai testé le code que vous m'avez fourni avec le SERIE.JOUR.OUVR et ca marché:

                  Sub date_creation()
                  Dim i As Integer
                  Dim fin As Integer

                  For i = 1 To 30
                  If Cells(i, 1) = "" Then fin = i: Exit For
                  Next i

                  For i = 1 To fin
                  If Cells(i + 1, 1) <> SERIE.JOUR.OUVR(Cells(i, 1).Value, 1) Then
                  Rows(i + 1).Insert
                  Cells(i + 1, 1) = Cells(i, 1) + 1
                  End If
                  Next i
                  End Sub

                  mais je crois que j'ai quelques problèmes en faite pour la ligne
                  If Cells(i + 1, 1) <> SERIE.JOUR.OUVR(Cells(i, 1).Value, 1) Then il y'a l'erreur d'éxecution '424' objet requis, je ne sais pas pourquoi ca ne marche pas sachant que ma colonne est composée de dates comm JJ/MM/AAAA

                  MERCI
                  0