XL 2010 Ajout automatique de ligne dans Tableau

scoubidou35

XLDnaute Occasionnel
Bonjour,

Je cherche à ce que mon tableau rajoute automatiquement des lignes pour afficher correctement le tableau
Je m'explique mon tableau contient une colonne année avec une formule le problème c'est si je veux avoir tous les résultats s'afficher
je dois manuellement rajouter des lignes a l'aide de la poigné en bas à droite du tableau.
J'aimerai savoir s'il y a possibilité que le tableau s'affiche avec autant de ligne qu'il faut
Par exemple en 2020 je souhaite que le tableau soit affiche les années de 2012 à 2021
Pour 2021 il faudra qu'il affiche le années de 2012 à 2022 et ainsi de suite....
Il faut donc qu'a partir de 2021 que le code rajoute une ligne supplémentaire au tableau pour faire apparaitre 2022

J'ai mis un code dans workbook (je ne sais pas si c'est le bon endroit mais dans ma tête ainsi le code s'exécute à l'ouverture du fichier je n'ai donc pas besoins de sélectionner la feuille ni le tableau) mais ca ne fonctionne pas et je ne comprends pas pourquoi.

Je reste à dispo pour toutes informations complémentaires.
 

Pièces jointes

  • TEST ANNEE.xlsm
    15.5 KB · Affichages: 23
Solution
Bonjour scoubidou35, Pierre, Roblochon,

Le code du ThisWorkbook :
VB:
Private Sub Workbook_open()
Application.ScreenUpdating = False
With [TabANNEE]
    If Application.CountA(.Cells) Then .Delete xlUp 'RAZ
    .Cells(1) = 2012
    .Resize(Year(Date) - 2010).DataSeries
End With
Me.Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
Edit : ajouté Me.Saved = True car l'invite à la fermeture est agaçante.

A+

Hasco

XLDnaute Barbatruc
Repose en paix
Bonsoir,
Bonsoir @pierrejean :)

Deux autres essais dans le fichier joint :

Par macro et votre listObject:
VB:
Private Sub Workbook_open()
On Error Resume Next
With Sheets("Feuil1").Range("TabANNEE[ANNEE]")
If .Cells(.Cells.Count) < Year(Date) + 1 Then .ListObject.ListRows.Add
End With
End Sub

Et par plage de cellules normales (34 ans possibles), et un nom 'ANNEES' qui ne retourne que les cellules de cette plage contenant une année >0


cordialement
 

Pièces jointes

  • TEST ANNEE.xlsm
    23.8 KB · Affichages: 7

job75

XLDnaute Barbatruc
Bonjour scoubidou35, Pierre, Roblochon,

Le code du ThisWorkbook :
VB:
Private Sub Workbook_open()
Application.ScreenUpdating = False
With [TabANNEE]
    If Application.CountA(.Cells) Then .Delete xlUp 'RAZ
    .Cells(1) = 2012
    .Resize(Year(Date) - 2010).DataSeries
End With
Me.Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
Edit : ajouté Me.Saved = True car l'invite à la fermeture est agaçante.

A+
 

Pièces jointes

  • TEST ANNEE(1).xlsm
    16.3 KB · Affichages: 10
Dernière édition:

scoubidou35

XLDnaute Occasionnel
Bonsoir à tous,

Merci pour vos réponses qui avec 3-4 manières différentes toutes fonctionnes et j'obtiens bien ce que je recherche.

Donc si je comprends bien en VBA il y a toujours plusieurs manière d'obtenir un résultat....pas facile pour mon apprentissage :D.

En tout cas merci beaucoup à vous trois.
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 810
dernier inscrit
mohammedaminelahbali