Supprimer dernière colonne pleine d'un tableau

  • Initiateur de la discussion Initiateur de la discussion Nurbo
  • 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 !

N

Nurbo

Guest
Salut tout le monde,


Je suis un peu à la peine depuis tout à l'heure, pour un truc que j'ai déjà réussi, mais je ne me rappel plus où...

Je crée un tableau via un TCD, puis copier/coller valeur pour figer le tout.
Je voudrais qu'une macro me supprime la dernière colonne pleine du tableau, à savoir la colonne TOTAL (en jaune dans le fichier).

Bien sur il faut partir sur l'optique que la taille du tableau change et donc pas question de se servir du nom de colonne (des fois 5 colonnes, des fois 30...).

Dans l'exemple joint, la macro SupprColonne fonctionne, elle se base sur le nom de la colonne.

Mais, pour un soucis d'apprendre, je voudrais savoir quel est le code pour des recherches style xlToLeft (désolé je ne connais pas le nom de ce type de recherche)

Il y a un exemple de macro DernièreColonne que j'ai essayé d'écrire, en vain... le pire, c'est que j'arrive à le faire pour les lignes, faire un auto-fill, filtrer et compter, mais je bugg sur les colonnes....c'est grave docter 😕


Je vous remercie par avance.
 

Pièces jointes

Re : Supprimer dernière colonne pleine d'un tableau

Bonjour Nurbo,
Si tu veux trouver la dernière colonne vide d'un tableau, tu peux te positionner, dans ton code, sur une ligne de ton tableau pleine (Qui à des valeurs dans toutes les colonnes du tableau; généralement les entêtes) comme ceci:

Code:
MsgBox( Cells(N°ligne choisie,256).End(xlToLeft).Column)

Du coup la dernière colonne pleine:

Code:
MsgBox (Cells(N°delignechoisie, Cells(N°delignechoisie, 256).End(xlToLeft).Column).Offset(0, -1).Column)

Et donc pour la supprimer:

Code:
Cells(N°delignechoisie, Cells(N°delignechoisie, 256).End(xlToLeft).Column).Offset(0, -1).EntireColumn.Delete

Bonne journée

EDIT : Rectif code

EDIT EDIT: Bonjour Pierrot, méthode intéressante, on en apprend tous les jours 😎
 
Dernière édition:
Re : Supprimer dernière colonne pleine d'un tableau

Re, bonjour VDavid

sinon une autre approche pour supprimer la dernière colonne de la feuille active :
Code:
Columns(Cells.Find("*", Cells(Rows.Count, Columns.Count), xlValues, , 2, 2, 0).Column).Delete
 
Re : Supprimer dernière colonne pleine d'un tableau

Bonjour,

petite remarque au passage, dans le tcd click droit => options du tableau => tu décoches "totaux des lignes", tu n'auras plus de souci...

bon après midi
@+

héhéhé, tu sais quoi, j'ai voulu rajouter un truc en me relisant et je me suis dit, c'est bon, ça va être fastoche pour ma réponse, ils vont vite trouver...

Donc, je rajoute: le TCD est créer via macro :

Code:
    Sheets("TCD1").Select
    Application.ScreenUpdating = False
    Sheets("TCD1").Activate
    Set MaPlage = Range("A1").CurrentRegion
    MaPlage.Name = "TCD"
    Sheets("TCD1").Activate

    With ActiveSheet
        .PivotTableWizard SourceType:=xlDatabase, SourceData:="TCD", TableDestination:="R1C1", TableName:="TCD2"
        .PivotTables("TCD2").SmallGrid = False
        .PivotTables("TCD2").AddFields RowFields:=("pas PAC"), ColumnFields:=("PAC-POSITION")
        .PivotTables("TCD2").PivotFields("PAC-POSITION").Orientation = xlDataField
    End With
    With Application
        .CommandBars("PivotTable").Visible = True
        .ScreenUpdating = False
    End With


    Range("2:2").Select
    With Selection
        .HorizontalAlignment = xlGeneral
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 90
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Columns("B:T").Select
    Columns("B:T").EntireColumn.AutoFit
    Range("P23").Select

Code certainement pas propre (pour vous 😛 ) mais qui fonctionne sans problème. J'avais donc essayé de trouver un code qui enlève via VBA la fameuse colonne "Totaux", mais ça n'a jamais marché.
 
Re : Supprimer dernière colonne pleine d'un tableau

Re, bonjour VDavid

sinon une autre approche pour supprimer la dernière colonne de la feuille active :
Code:
Columns(Cells.Find("*", Cells(Rows.Count, Columns.Count), xlValues, , 2, 2, 0).Column).Delete


Ce code colle parfaitement avec ce que j'ai besoin de faire, même si je ne le comprend pas entièrement....ça viendra...ça viendra...

Merci aussi à VDAVID pour ses réponses qui m'ont fournis de nouvelles infos.


Pour la ligne du TCD, je l'insère pour tester.
 
- 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 Fonction si
Réponses
7
Affichages
217
  • Question Question
Microsoft 365 tableau d'alerte
Réponses
2
Affichages
211
Réponses
4
Affichages
265
Retour