Supprimer la dernière colonne d'un tableau via macro VBA

Bonjour à tous,

J'ai besoin de votre aide svp!

Je voudrai une macro qui pourra me supprimer la dernière colonne colonne de chaque tableau crée.

Cette dernière colonne est le "Total général".

Je m'explique : la boucle pourra parcourir toute la première ligne de mon tableau et quand il rencontre "Total général" qui sera la dernière colonne du tableau et donc de supprimer toute la colonne.

----------------

Je joins un code qui me génère les onglets, et il y a un onglet "exemple de ce que je voudrai obtenir.

La cellule "A2" portera le nom de l'onglet.

Merci à vous tous.

Sub Dispatch()

Application.ScreenUpdating = False

Dim myRange As Range, mySheet As Worksheet, mySN As String, myH As Range

Sheets("TCD").Select

Set mySheet = ActiveSheet

Set myH = Range(Range("A4"), Cells(4, Columns.Count).End(xlToLeft))

'myH.Select

Range("A5").Select

Set myRange = ActiveCell

mySN = ActiveCell

Do Until ActiveCell = "Total général"

If Not ActiveCell.Offset(1, 0) Like "**/**/****" Then

Range(myRange, ActiveCell).Rows.EntireRow.Copy

Sheets.Add after:=Sheets(Sheets.Count)

ActiveSheet.Name = mySN

Range("A2").PasteSpecial

myH.Copy

Range("A1").PasteSpecial

Application.CutCopyMode = False

Columns("A:H").EntireColumn.AutoFit

For a = myH.Cells.Count To 2 Step -1

If Cells(Rows.Count, a).End(xlUp).Row = 1 Then

Cells(Rows.Count, a).Columns.EntireColumn.Delete

End If

Next a

Range("2:2").Copy

Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial

Application.CutCopyMode = False

Selection.Font.Bold = True

Range("2:2").Delete

mySheet.Activate

Set myRange = ActiveCell.Offset(1, 0)

mySN = ActiveCell.Offset(1, 0)

End If

ActiveCell.Offset(1, 0).Select

Loop

Application.ScreenUpdating = True

End Sub

29tcd.zip (22.34 Ko)

Bonjour,

une solution possible (tester sous Excel 2010)

DerniereColonne = ActiveSheet.UsedRange.Columns.Count ' trouve la dernière colonne utilisée

Columns(Val(DerniereColonne)).Delete Shift:=xlToLeft ' supprime la dernière colonne

ou en plus condensé:

Columns(Val(ActiveSheet.UsedRange.Columns.Count)).Delete Shift:=xlToLeft

Cordialement

Salut Patrik33,

Ta fonctionne marche mais au lieu d'effacer la dernière colonne du tableau, elle efface tout le tableau.

PS: J'utilise excel 2003-2007.

Je débutante dans ce langage et ce n'est pas facile pour moi.

Merci d'être intéresser à mon pb.

Sur la version 2010 je n'ai pas de souci particulier.

Essaie ces quelques lignes.

colonne = ActiveSheet.UsedRange.Columns.Count

For i = colonne To 1 Step -1

If Cells(1, i) = "Total général" Then Columns(i).Delete

Next i

Merci Patrick33,

Il marche bien ton programme cette fois.

C'est très gentil!

Rechercher des sujets similaires à "supprimer derniere colonne tableau via macro vba"