Effacer les lignes d'un tableau avec un bouton

Bonsoir à tous,

Je souhaiterais pouvoir effacer les lignes du tableau des mouvements dans la feuille "Mouvements" de mon fichier en cliquant sur un bouton.

Cela fonctionne mais cela n'efface que le contenu des lignes du tableau alors que je souhaiterais que cela efface les lignes aussi pour repartir avec un tableau vierge.

Merci d'avance pour votre aide.

Bonne soirée à tous.

Bonjour essayez avec ceci cela devrait être fonctionnel

Dim table
Set table = Feuil5.ListObjects("Tableau4")
Feuil5.Rows("2:" & table.ListRows.Count).Delete
Feuil5.Rows("2:2").ClearContents

Bonjour,

Essaie ainsi :

Private Sub CommandButton1_Click()
Dim lo As ListObject

    Set lo = Me.ListObjects(1)

    If Not lo.DataBodyRange Is Nothing Then lo.DataBodyRange.Delete

    Set lo = Nothing

End Sub

Bonjour, jean-eric...Merci, je ne connaissais pas cette bête (databodyrange).

Bonsoir machin,

Merci beaucoup pour votre code.

Cela fonctionne très bien mais le problème est que lorsque je veux ajouter de nouveaux des mouvements de stock, ils n'apparaissent plus dans ma feuille "Mouvements".

Cordialement.


Bonsoir Jean-Eric,

Merci aussi pour votre participation, mais même problème.

Cordialement.

RE,

Tu as posé une question et tu as eu 2 réponses presque identiques.

Peux-tu préciser ta question? Quelle est la procédure qui pose problème dans ton fichier?

Cdlt.

Désolé, ce n'était peut-être pas très clair.

Dans mon fichier de gestion de stock, je souhaiterais pouvoir effacer l'historique des mouvements une fois par an pour recommencer l'année suivante à 0 au niveau de ces mouvements. Cela éviterai d'avoir une feuille de plusieurs centaines de lignes.

Mais avec ce que j'ai fait, cela efface bien le contenu mais pas les lignes, donc quand je rentre de nouveaux mouvements de stocks, ceux-ci s'ajoutent après la dernière ligne vide alors que je souhaiterai qu'ils remplissent le tableau à la première ligne.

Ce que vous m'avez proposer efface effectivement les lignes du tableau mais je ne peux plus y inscrire de mouvements de stock, ils n'apparaissent plus dans le tableau.

Voilà, j'espère avoir été un peu plus clair

En tout cas, merci pour votre aide.

Cordialement.

J'ai modifié également le code du bouton validé pour que cela fonctionne.

Jean-eric. dans se genre de tableau, quand vous supprimez toutes les lignes comme on l'a fait avec delete, il reste toujours une ligne que l'on ne peut effacer et qui n'est pas considéré comme vide par une méthode basique .end(xlup) donc l'ajout de donnée par formulaire se fait en dessous du tableau et non dedans.

Pour palier à ça, je me suis servi de listrows + un décallage pour forcé l'écriture dans cette ligne insupprimable.

C'est parfait, exactement ce que je souhaitais réaliser.

Merci beaucoup pour votre aide Machin, merci aussi à Jean-Eric.

Bonne fin de soirée à vous.

Cordialement.

Merci à vous également

Re,

Voir fichier avec cette modification.

Cdlt.

Set Ws_Mouvements = Worksheets("Mouvements")
    Set table = Ws_Mouvements.ListObjects(1)
    Set lr = table.ListRows.Add(AlwaysInsert:=True)

        lr.Range.Cells(1, 1) = Me.Tb_mvts_date
        lr.Range.Cells(1, 2) = Me.Tb_produit_entreprise
        lr.Range.Cells(1, 3) = Me.Tb_produit_désignation
        lr.Range.Cells(1, 4) = Me.Tb_produit_référence

        If Me.OptB_mvts_entrée = True Then
            lr.Range.Cells(1, 5) = Me.Tb_mvts_quantité.Value
        ElseIf Me.OptB_mvts_sortie = True Then
            lr.Range.Cells(1, 6) = Me.Tb_mvts_quantité.Value
        End If

        lr.Range.Cells(1, 7) = Me.Cbb_mvts_agent
        lr.Range.Cells(1, 8) = Me.Cbb_mvts_usage

Re bonsoir Jean-Eric,

C'est parfait car il n'y a pas de risque d'effacer les entêtes de colonnes si on clique alors que la page est vide et lorsque l'on rajoute des mouvements, ils s'inscrivent dès la première ligne et non a la suite.

Un grand merci à vous et à vos compétences.

Bonne nuit.

Cordialement.

Rechercher des sujets similaires à "effacer lignes tableau bouton"