Insertion automatique d'une ligne des dates manquantes

Fermé
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 - 14 mars 2013 à 12:52
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 - 3 avril 2013 à 16:09
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
A voir également:

7 réponses

scinarf Messages postés 1119 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 252
14 mars 2013 à 13:27
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
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 1
14 mars 2013 à 13:52
Wow scinarf ca marche trop bien
merci
0
scinarf Messages postés 1119 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 252
14 mars 2013 à 14:13
Pas de soucis, hésitez pas si jamais il y a un soucis
0
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 1
Modifié par TraderAS le 15/03/2013 à 10:16
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scinarf Messages postés 1119 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 252
15 mars 2013 à 10:22
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
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 1
15 mars 2013 à 15:12
encore merci ca marche comme par magie ;)
0
scinarf Messages postés 1119 Date d'inscription samedi 18 novembre 2006 Statut Membre Dernière intervention 25 septembre 2014 252
15 mars 2013 à 15:13
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
TraderAS Messages postés 110 Date d'inscription lundi 3 décembre 2012 Statut Membre Dernière intervention 26 avril 2018 1
3 avril 2013 à 16:09
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