XL 2010 Ajout automatique de ligne dans Tableau

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 !

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

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+
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

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

Dernière édition:
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 😀.

En tout cas merci beaucoup à vous trois.
A+
 
- 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

Discussions similaires

Réponses
10
Affichages
291
  • Question Question
Microsoft 365 MFC dans tableau
Réponses
2
Affichages
224
Réponses
11
Affichages
170
Réponses
12
Affichages
247
Retour