Supprimer colonnes

SandraSSQ

XLDnaute Nouveau
Bonjour,

Je suis débutante en VBA et j'aimerais faire une macro qui supprime les colonnes dans une feuille excel automatiquement. Par contre les colonnes à enlever ne sont pas toujours les mêmes et sont énuméré dans une autre feuille du fichier par un identifiant de la colonne (le nombre de colonne à enlever peut varier). Ci-joint, un exemple très simplifié du fichier. J'avais pensé utiliser un Do while avec un Hlookup mais je ne suis pas certaine.

Merci beaucoup pour votre aide!
 

Pièces jointes

  • Exemple.xlsx
    8.6 KB · Affichages: 49
  • Exemple.xlsx
    8.6 KB · Affichages: 51
  • Exemple.xlsx
    8.6 KB · Affichages: 57

Modeste

XLDnaute Barbatruc
Re : Supprimer colonnes

Bonsoir SandraSSQ,

A tester, ce code dans un module standard:
VB:
Sub SupprCol()
With Sheets("Liste")
    For Each c In .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row)
        col = Application.Match(c, Sheets("VU").Range("1:1"), 0)
        If Not IsError(col) Then Sheets("VU").Columns(col).Delete
    Next c
End With
End Sub
 

laurent950

XLDnaute Accro
Re : Supprimer colonnes

Bonsoir SandraSSQ


Voici un bout de code :

Sub Macro1()
'
' Macro1 Macro
'

Dim Vu As Worksheet
Dim Liste As Worksheet

Set Vu = Worksheets("VU")
Set Liste = Worksheets("Liste")

' Derniere cellule non vide de la ligne (VU = Ligne 1)
finvu = Vu.Range("XFD1").End(xlToLeft).Column
finliste = Liste.Range("A65536").End(xlUp).Row

For i = 1 To finliste
For j = 1 To finvu
If Liste.Cells(i, 1) = Vu.Cells(1, j) Then
'MsgBox Left(Columns(Vu.Cells(1, j).Column).Address, InStr(Columns(Vu.Cells(1, j).Column).Address, ":") - 1) & 1
'Vu.Cells(1, j).Column
Range(Left(Columns(Vu.Cells(1, j).Column).Address, InStr(Columns(Vu.Cells(1, j).Column).Address, ":") - 1) & 1).Select
Selection.EntireColumn.Delete
End If
Next j
Next i

End Sub

laurent
 

Discussions similaires

Réponses
2
Affichages
210
Réponses
22
Affichages
874

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom