Insertion automatique d'une ligne des dates manquantes

TraderAS Messages postés 119 Statut Membre -  
TraderAS Messages postés 119 Statut Membre -
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 1183 Statut Membre 252
 
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 119 Statut Membre 1
 
Wow scinarf ca marche trop bien
merci
0
scinarf Messages postés 1183 Statut Membre 252
 
Pas de soucis, hésitez pas si jamais il y a un soucis
0
TraderAS Messages postés 119 Statut Membre 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

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

Posez votre question
scinarf Messages postés 1183 Statut Membre 252
 
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 119 Statut Membre 1
 
encore merci ca marche comme par magie ;)
0
scinarf Messages postés 1183 Statut Membre 252
 
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 119 Statut Membre 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