XL 2010 Macro suppréssion plusieurs colonnes discontinues sur plusieurs onglets

heho13

XLDnaute Occasionnel
Bonjour,

Je n'y connais pas grand chose, j'ai bidouillé un truc en cherchant sur le forum, mais je n'arrive à le faire pour 20 onglet en même temps.

Merci
 

Pièces jointes

  • 1test2.xlsm
    16.2 KB · Affichages: 12

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

Ta macro actuelle traite toutes les feuilles du classeur actif
VB:
Sub deletecolonne()
Dim O As Object
For Each O In Sheets
    O.Range("G:i,m:o,t:w,aq:at,aw:ay,ba:bb,AA:AN").Delete
Next O
End Sub
IL faudrait qu'on sache le point commun entre les 20 onglets à traiter
(les noms par exemple)
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Comme nous ne savons pas quelles feuilles suprimer ni sur quel critères les sélectionner, voici trois façon, parmi d'autre d'opérer sur le classeur joint et à partir de votre macro (qui n'a que 2 feuilles.!!!!).

J'ai utilisé Worksheets (feuilles de travail) plutôt que sheets (autres types de feuilles: graphiques, macro etc .)

VB:
Sub deletecolonne()
    Dim O As Worksheet
    '
    ' suppression des colonnes des feuilles du tableau des noms
    For Each O In Worksheets(Array("Feuil1", "Feuil2"))
        O.Range("G:i,m:o,t:w,aq:at,aw:ay,ba:bb,AA:AN").Delete
    Next
End Sub

Sub deletecolonne2()
    Dim i As Integer
    '
    ' suppression des colonnes des feuilles par index 1 = première feuille
    For i = 1 To 2
        ThisWorkbook.Worksheets(i).Range("G:i,m:o,t:w,aq:at,aw:ay,ba:bb,AA:AN").Delete
    Next i
End Sub

Sub deletecolonne3()
    Dim i As Integer
    '
    ' suppression des colonnes par le nom indéxé des feuilles de 'Feuil1' à 'Feuil2'
    For i = 1 To 2
        ThisWorkbook.Worksheets("Feuil" & i).Range("G:i,m:o,t:w,aq:at,aw:ay,ba:bb,AA:AN").Delete
    Next i
End Sub

Bonne journée

[Edit] bing @Staple1600 et surtout Hello:)
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Toujours pas plus de précision. Si c'est vraiment les 20 premières feuilles, choisissez la solution 2 (sub deletecolonne2())
que je vous ai donnée plus haut en changeant 2 par 20.

Bon après-midi
 

Discussions similaires

Réponses
6
Affichages
369