XL 2019 Redimensionner et supprimer des colonnes tableau (VBA)

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 !

Djoeharno

XLDnaute Nouveau
Bonjour !

J'ai un tableau (calcul de devis) au milieu d'une feuille excel (Range A20:E13) dont j'aimerai en cliquant sur une macro : Redimensionner le tableau et supprimer les lignes qui ont été ajoutées.

Actuellement j'ai 5 lignes sur mon tableau : en tête + 4 ligne de remplissage.
Imaginons que je remplisse 8 lignes, j'aimerai en cliquant sur un bouton supprimer l'ensemble des données du tableau + le redimensionner sur 4 lignes.

J'ai essayé avec le code suivant :

Sheets("Facture-Devis").Range("A21").Select
Range(Selection, Selection.End(xlDown)).ClearContents
Sheets("Facture-Devis").Range("C21").Select
Range(Selection, Selection.End(xlDown)).ClearContents
Sheets("Facture-Devis").Range("B21").Select
Range(Selection, Selection.End(xlDown)).ClearContents
Sheets("Facture-Devis").Range("D21").Select
Range(Selection, Selection.End(xlDown)).ClearContents
Sheets("Facture-Devis").Range("E13").ClearContents

ActiveSheet.ListObjects("Tableau1").Resize Range("$A$1:$G$10")

Pour la partie suppression, ça c'est ok par contre pour la partie redimensionnement, le tableau se redimensionne bien mais il ne supprime pas les lignes qui ont été ajouté.
Je voudrais donc en plus de redimensionner le tableau, supprimer les lignes qui ont été potentiellement ajouté en remplissant le tableau (quand c'est supérieur à 4 lignes par exemple)
 

Pièces jointes

Bonsoir Djoeharno, et bienvenu sur XLD,
Vous auriez du mettre un fichier exemple, cela aurait simplifier le problème. 😉
J'ai supposé que Range A20:E13 était plutôt Range A13:E20, donc un tableau structuré qui commence en ligne 13.
En PJ un essai avec :
VB:
Sub Nettoie()
   With [Tableau1]
        .ClearContents
        .Rows(1).Resize(.Rows.Count - 4).Delete xlUp
    End With
End Sub
 

Pièces jointes

Ah par contre, je viens de voir que j'ai une erreur lorsque j'ai 4 lignes dans le tableau rempli et que du coup rien ne se supprime : Erreur définie par l'application pour par l'objet. Appui 2 fois d'affilé sur la macro, tu verras l'erreur. On peut peut être mettre une fonction SI?
 
Vous auriez du mettre un fichier exemple, cela aurait simplifier le problème.
C'était plus un conseil qu'autre chose.
Un bon vieux fichier test est toujours le bienvenu.

Une petite modif simple :
VB:
Sub Nettoie()
   With [Tableau1]
        .ClearContents
        If .Rows.Count > 4 Then .Rows(1).Resize(.Rows.Count - 4).Delete xlUp
    End With
End Sub
 

Pièces jointes

- 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

  • Question Question
Microsoft 365 Code VBA
Réponses
2
Affichages
476
Réponses
4
Affichages
757
Retour