Supprimer dernière colonne pleine d'un tableau

Nurbo

XLDnaute Nouveau
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 :confused:


Je vous remercie par avance.
 

Pièces jointes

  • dernière colonne pleine.xls
    43 KB · Affichages: 29

VDAVID

XLDnaute Impliqué
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 :cool:
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
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
 

Nurbo

XLDnaute Nouveau
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 :p ) 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é.
 

Nurbo

XLDnaute Nouveau
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.
 

Discussions similaires

Réponses
16
Affichages
767

Statistiques des forums

Discussions
312 555
Messages
2 089 547
Membres
104 208
dernier inscrit
laura29180