Insertion automatique de lignes dans un tableau

ludosim

XLDnaute Nouveau
Bonjour, et merci d'avance à ceux et celles qui pourront peut-être m'aider. Je suis au bord de la crise de nerf... je pense que vous avez tous connu ça. Je lance donc une bouteille à la mer... HELP ME !!!

Je suis en train de me galérer sur un truc normalement pas très dur. Vu que je suis débutant en VBA, je pense qu'un expert pourrait résoudre le pb en 2min 30. Je viens de découvrir ce forum et ca a l'air vraiment top, j'espère que les experts sont sympas avec les ptits nouveaux ;-). Voila le topo :

J'utilise un classeur avec plein de feuilles, certaines contiennent des données, d'autres sont utilisées pour faire des calculs. Vu que mes calculs prennent en compte une chronologie, je suis obligé à chaque fois de vérifier qu'il n'y a pas de trous au niveau des dates dans les feuilles de données... et c'est super long. Je voudrais donc automatiser la tache.

Exemple (voir PJ):
j'ai une feuille qui contient une liste de données triées par date. La première date est le 13/09/05 et la dernière 23/07/05. Le pb c'est qu'il y a des dates sans données et qui n'apparaissent donc pas dans la feuille (ce qui m'empeche de faire des calculs simplement). Je suis donc obligé d'insérer des lignes vierges d'info ne contenant que la date manquante... en gros, je voudrais une fonction qui vérifie qu'il n'y a pas de trou chronologique entre la première et la dernière date. S'il la fonction détecte un trou, je veux juste qu'elle insère une ligne avec la date seulement...

Est-ce que c'est clair ? Merci d'avance pour votre aide.:)

Ludo
 

Pièces jointes

  • exemple.xls
    21 KB · Affichages: 155
  • exemple.xls
    21 KB · Affichages: 163
  • exemple.xls
    21 KB · Affichages: 161
Dernière édition:

CBernardT

XLDnaute Barbatruc
Re : Insertion automatique de lignes dans un tableau

Bonjour Ludosim et le forum,

Un essai de macro pour boucher les trous des dates chronologiques :

Sub BoucherTrousDates()
Dim i As Integer, Derlig As Integer
Derlig = Range("A65000").End(xlUp).Row
Range("A1:D" & Derlig).Sort Key1:=Range("A1"), Order1:=xlAscending
For i = Derlig To 2 Step -1
If Cells(i - 1, 1) + 1 <> Cells(i, 1) Then
Cells(i, 1).EntireRow.Insert
Cells(i, 1) = Cells(i + 1, 1) - 1
i = i + 1
End If
Next i
End Sub

Cordialement

Bernard
 
Dernière édition:

tybo24

XLDnaute Nouveau
Re : Insertion automatique de lignes dans un tableau

Merci pour cette formule elle fonctionne parfaitement.

Personnellement mon tableau comporte plusieurs fois la même date et donc la macro plante.

exemple :
02/06/2010
02/06/2010
04/06/2010
04/06/2010
07/06/2010
07/06/2010

Vous est il possible dans votre grande générosité d'adapter votre formule pour ce cas là ?
 

JNP

XLDnaute Barbatruc
Re : Insertion automatique de lignes dans un tableau

Bonjour Tybo24 et bienvenue :),
J'ai manqué de ne pas réagir et laisser Bernard te répondre, puis j'ai vu que le fil datait de 2006 :eek:...
Code:
Sub BoucherTrousDates()
Dim i As Integer, Derlig As Integer
Derlig = Range("A65000").End(xlUp).Row
Range("A1:A" & Derlig).Sort Key1:=Range("A1"), Order1:=xlAscending
For i = Derlig To 2 Step -1
If Cells(i - 1, 1) + 1 <> Cells(i, 1) [B][COLOR=red]And Cells(i - 1, 1) <> Cells(i, 1) [/COLOR][/B]Then
Cells(i, 1).EntireRow.Insert
Cells(i, 1) = Cells(i + 1, 1) - 1
i = i + 1
End If
Next i
End Sub
le petit ajout en rouge permetra de ne pas ajouter de ligne quand les dates sont identiques ;).
Bonne journée :cool:
 

tybo24

XLDnaute Nouveau
Re : Insertion automatique de lignes dans un tableau

Merci pour la rapidité de réponse, c'est agréable de voir que le site et régulièrement alimenté.

JNP, je viens de tester la macro modifiée ça à l'aire de fonctionner mais elle est sans fin, la macro ne s'arrête pas quand la date suivante est atteinte, je suis obligé d'appuyer sur [échap] pour arrêter la formule.

Voici ci-dessous le résultat de la formule pour l'exemple proposé :

02/06/2010
02/06/2010
04/06/2010
04/06/2010
07/06/2010

:eek:Touche Esc nécessaire pour arrêter la macro !
.
.
.
29/05/2010
30/05/2010
31/05/2010
01/06/2010
02/06/2010
03/06/2010
04/06/2010
05/06/2010
06/06/2010
07/06/2010

Pouviez vous m'éclairer de vos lumières ?
 

JNP

XLDnaute Barbatruc
Re : Insertion automatique de lignes dans un tableau

Re, salut Jean-Claude :),
Désolé pour ce trou, mais vacances obligent :p... Et c'est pas fini, youpi :D...
N'aurais-tu pas des lignes sans dates ? Le fichier est trié, mais on ne vérifie pas s'il y aurais des lignes sans dates...
A + :)
 

Discussions similaires

Réponses
5
Affichages
213
Réponses
4
Affichages
369

Statistiques des forums

Discussions
312 763
Messages
2 091 858
Membres
105 079
dernier inscrit
Biscot_399