Supprimer plusieurs colonnes dans un onglet

Bonjour,

Je ne connais pas le VBA, j'ai fait des batch pour automatiser des choses, mes notions en programmation sont limitées.

Je fais des extractions régulière de données brut JSON d'un outil de web analytique qui sont transformées en données Excel.

J'ai besoin de supprimer 86 colonnes inutiles rapidement dans le fichier Excel.

J'ai deux onglet, l'onglet data avec les colonnes que je dois supprimer et un onglets "Colonnes Inutiles"

J'ai récupéré ce script mais je voudrais le modifier de maniere à ce qu'il prenne les intitulés des colonnes inutiles dans l'onglet.

Sub SupColonnes()
  Dim dCol As Long, Col As Long
  Dim tColSup, Flg As Boolean
  ' # Liste des colonnes à supprimer
  ' Respecter l'orthographe de chaque terme
  tColSup = Split("adresse,âge,sport", ",")
  ' Avec la feuille
  With Sheets("Data")
    ' Dernière colonne
    dCol = .Cells(1, Columns.Count).End(xlToLeft).Column
    ' Pour chaque colonne
    For Col = dCol To 1 Step -1
      ' Vérifier si nom de colonne trouvé dans celles à supprimer
      Flg = Not IsError(Application.Match(.Cells(1, Col).Value, tColSup, 0))
      ' Si c'est le cas on supprime
      If Flg Then .Cells(1, Col).EntireColumn.Delete Shift:=xlToLeft
    Next Col
  End With
  MsgBox "C'est fait !"
End Sub

J'aimerai modifier la ligne tColSup de maniere à ce qu'il aille prendre les titres de colonnes dans la premiere colonne de l'onglet "Colonne inutiles"

Pouvez vous me suggerer une modification svp ?

 tColSup = Split("adresse,âge,sport", ",")

Merci pour votre aide par avance.

Bonjour Elrick,

tColSup = Split(Sheets("Colonnes intutiles").Range("A1").Value, ",")

Cdlt,

Cylfo

Hello,

Un grand merci pour ton aide :)

Ca fonctionne mais il prend uniquement la celulle A1, je voudrais qu'il prenne toutes les cellules ou il y a un contenu de la colonne A.

Comment lui dire de prendre toutes les lignes de la colonne A stp ?

Merci par avance.

Re,

Je te propose la procédure suivante :

Sub SupColonnes()
  Dim dCol As Long, Col As Long
  Dim vColSuppr As Variant
  Dim nColLstASuppr As Long

  ' Avec la feuille
  Application.ScreenUpdating = False
  With Sheets("Data")
    nColLstASuppr = 1
    While Sheets("Colonnes inutiles").Cells(nColLstASuppr, 1).Value <> ""
         ' Vérifier si nom de colonne trouvé dans celles à supprimer
         vColSuppr = Application.Match(Sheets("Colonnes inutiles").Cells(nColLstASuppr, 1).Value, .Range("1:1"), 0)
         If IsError(vColSuppr) = False Then ' Si c'est le cas on supprime
            .Cells(1, vColSuppr).EntireColumn.Delete Shift:=xlToLeft
         End If
         nColLstASuppr = nColLstASuppr + 1
    Wend
  End With
  Application.ScreenUpdating = True
  MsgBox "C'est fait !"
End Sub

Cdlt,

Cylfo

Ca fonctionne, merci, c'est top :) :)

Rechercher des sujets similaires à "supprimer colonnes onglet"