XL 2019 Redimensionner et supprimer des colonnes tableau (VBA)

  • Initiateur de la discussion Initiateur de la discussion Djoeharno
  • Date de début Date de début
  • Mots-clés Mots-clés
    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 !

D

Djoeharno

Guest
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
2
Affichages
572
M
  • Question Question
Réponses
3
Affichages
786
Mr.Adrien
M
P
  • Résolu(e)
Réponses
2
Affichages
1 K
Pdedieu
P
L
Réponses
1
Affichages
1 K
L
Réponses
4
Affichages
869
L
Réponses
9
Affichages
1 K
R
Réponses
20
Affichages
4 K
RaVenSs
R
Retour