Microsoft 365 Supprimer Lignes Tableau

  • Initiateur de la discussion Initiateur de la discussion eric72
  • Date de début Date de début

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 !

eric72

XLDnaute Accro
Bonjour à tous,
J'ai un tableau structuré dans lequel il y a une formule en colonne "C" et je n'arrive à déclencher une macro qui supprimerait toutes les lignes du tableau mais en conservant la formule en colonne C, auriez-vous une idée pour résoudre ce problème.
Merci beaucoup pour votre dévouement.
Eric
 

Pièces jointes

Solution
Bonjour.
Essayez :
VB:
ActiveSheet.ListObjects(1).DataBodyRange.Delete xlShiftUp
Mais je crois que vous auriez intérêt à faire de temps à autres:
Code:
ActiveSheet.ListObjects(1).ListColumns("Initiales").DataBodyRange.FormulaR1C1 = "=[@[Prénom Poseur]]&""""&LEFT([@[Nom Poseur]],1)"
J'ignore pourquoi, mais il a du mal à comprendre que c'est la formule de toute la colonne et non une formule isolée.
Bonjour à tous,

Un essai en conservant le tableau structuré.
  1. le bouton Vider le tableau ôte toute les lignes du tableau structuré
  2. ensuite dès qu'on introduit une valeur dans le tableau structuré, la formule se remet en colonne 3
  3. ou à chaque fois qu'on modifie le tableau, la formule est remise en colonne 3
Le code est entièrement dans le module de la feuille "TbPoseur".
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   With Range("a1").ListObject
      If .ListRows.Count > 0 Then
         If Not Intersect(Target, .DataBodyRange) Is Nothing Then
            On Error GoTo Fin
            Application.EnableEvents = False
            .ListColumns(3).DataBodyRange.ClearContents
            .ListColumns(3).DataBodyRange.Formula2R1C1 = "=[@[Prénom Poseur]]&""""&LEFT([@[Nom Poseur]],1)"
         End If
      End If
   End With
Fin:
   Application.EnableEvents = True
End Sub

Sub ViderTableau()
   If Range("a1").ListObject.ListRows.Count > 0 Then Range("a1").ListObject.DataBodyRange.Delete
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

Réponses
3
Affichages
41
Réponses
3
Affichages
277
Réponses
66
Affichages
490
Retour