Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Insérer la ligne de la date manquante

  • Initiateur de la discussion Initiateur de la discussion Trader
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

Trader

Guest
Bonjour,

j'ai un problème en ce qui concerne des dates manquantes dans mon fichier excel:



comme suit:
DATE ** Valeur
20/03/2011** 10
18/03/2011** 15
16/03/2011 ** 13
14/03/2011** 12

comme vous pouvez le constatez il manque les dates du 19,17 et le 15 Mars 2013, je souhaite les insérer automatiquement et copier coller la valeur de la date qui précéde c'est à dire et comme exemple:

===>##j'insére la ligne de la date du 19/03/2013 et je fais un copier coller de la valeur du 18/03/2013 et ains de suite ##

j'ai crée cee code mais ca n'a pas marché :

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


For i = 1 To 10
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

==> Erreur d'éxecution '424' objet recquis au niveau de cette ligne:
****If Cells(i + 1, 1) <> SERIE.JOUR.OUVR(Cells(i, 1).Value, 1) Then****
vu que je travail sur une semaine de 5 jours

et voici le document sur lequel je travail :

Ce lien n'existe plus

est ce que vous pouvez me donnez un coup de main a avoir le bon résultat

merci
 
Re : Insérer la ligne de la date manquante

Bonjour,
1ere chose: c'est juste une habitude à prendre
lorsque tu parcours ton fichier pour y insérer des lignes, il faut parcourir à partir du bas, sinon, tu peux etre sur qu'à chaque fois que tu insères une ligne, la boucle for i=1 to 10 te fais planter..
modifie ton code en conséquence.. et vérifie en faisant une éxécution pas à pas (F8)
et tiens nous au courant
 
Re : Insérer la ligne de la date manquante

Ok vgendron tout de suite 😉
j'ai modifié par ceci: For i = 10 To 1
le code il fonctionne mais rien ne change dans mo fichier Excel
 
Dernière modification par un modérateur:
Re : Insérer la ligne de la date manquante

est ce que tu peux reposter ton fichier sans passer par cijoint (j'y ai pas accès d'ici):
utilise le mode avancé de ce forum (sous la fenetre de saisie de message: en bas à droite)
 
Re : Insérer la ligne de la date manquante

Ok, après une recherche j'ai trouvé que je dois changer
If Cells(i + 1, 1) <> SERIE.JOUR.OUVR(Cells(i, 1).Value, 1) Then
par
If Cells(i + 1, 1) <> Application.workdays(Cells(i, 1).Value, 1) Then

mais il n'ya pas de résultat

vous pouvez consulter le fichier 😉
 

Pièces jointes

Re : Insérer la ligne de la date manquante

Bonjour
Ton calendrier semble bizarre ? parfois il y a plein de dates qui se suivent ( Ordonnancer") et puis ensuite ça saute des jours ?
Je ne connais pas ton projet mais quand t'as démarré l'appli : tu pouvais pas mettre ( à la paluche , ou vba) un calendrier entier dans ta colonne ; du 01/01/11 par exemple au 31/12/1013 ???
Ou alors , il y a des restrictions qui ne sont pas détaillées dans ton Post ?
 
Re : Insérer la ligne de la date manquante

Salut

en faite mon problème consiste a ajouter les dates qui manquent et donc c'est normal que vous trouviez des dates manquantes

merci
 
Re : Insérer la ligne de la date manquante

Re
En fait aussi le "Monsieur" Y veut recopier AUSSI les valeurs précédentes si j'ai bien lu le début :

Donc , je pense qu'il faut ajouter :
Cells(i, 2) = Cells(i + 1, 2)
avant :
i = i + 1
J'ai testé !
 
Re : Insérer la ligne de la date manquante

Bonjour à tous,

j'ai testé ce code, et j'ai pris en compte la partie valeur , enfin pas de bug mais le code ne fait que tourner en rond et il ne s'arrête pas
voici le code:

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

fin = Cells(Rows.Count, 1).End(xlUp).Row
For i = fin - 1 To 1 Step -1
If Cells(i + 1, 1) <> WorksheetFunction.WorkDay(Cells(i, 1).Value, 1) Then
Rows(i + 1).Insert
Cells(i + 1, 1) = WorksheetFunction.WorkDay(Cells(i, 1).Value, 1)
Cells(i + 1, 2) = Cells(i, 2)
i = i + 2
End If
Next i
End Sub

il manque un astuce, sachant que j'ai travaillé que sur des dates ouvrables, ordonnées en ordre croissant
ci joint le fichier surlequel j'ai travaillé
 

Pièces jointes

Re : Insérer la ligne de la date manquante

Bonjour,
essai avec ce code
Code:
Sub date_creation()
Dim i As Integer
Dim fin As Integer

fin = Cells(Rows.Count, 1).End(xlUp).Row
For i = fin To 2 Step -1
    If Cells(i - 1, 1) <> WorksheetFunction.WorkDay(Cells(i, 1).Value, 1) Then
        Rows(i).Insert
        Cells(i, 1) = WorksheetFunction.WorkDay(Cells(i + 1, 1).Value, 1)
        Cells(i, 2) = Cells(i + 1, 2)
        i = i + 1
    End If
Next i
End Sub
 
Re : Insérer la ligne de la date manquante

Re

Quand j'ai voulu testé ca n'a marché que sur une plage de données qui composée de presque 20 lignes mais quand j'ai essayé de l'appliquer sur des données composées de presque 300 lignes, et où il manque des dates, il a commencé à m'ajouter des dates futures, au dela de 2013, c'est à dire il a ajouté les dates de 2014, 2015 etc

il manque une petite rectif afin de limiter son champs d'action qu'à seulement les données disponibles ni plus ni moin peut être une variable k qui varie entre 1 et le nombre de lignes

ci joint le fichier qui contient un grand nombre de lignes
 

Pièces jointes

Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
832
Réponses
4
Affichages
688
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
331
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…