IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Effacer certaines colonnes d'un tableau [XL-365]


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    ingenieur du son
    Inscrit en
    Avril 2017
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur du son
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2017
    Messages : 212
    Par défaut Effacer certaines colonnes d'un tableau
    Bien le bonjour à toutes et tous.

    J'aimerai via une macro effacer certaines colonnes d'un tableau T_2
    Il comporte 13 colonnes et je ne veux effacer que les colonnes de 3 à 13
    En faisant l'enregistrement de macro, et en la remaniant j'ai obtenu ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("T_2[[#All],[Groupe 1]:[Groupe 10]]").ClearContents
    Ca fonctionne très bien .

    Maintenant j'aimerai que ce soit défini à partir de la colonne [Groupe 1] sur x colonnes (x étant un nombre que je vais chercher sur une autre feuille) et pas que jusqu'à le colonne [Groupe 10].

    Voili merci

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      With ActiveSheet.ListObjects("T_2")
        .ListColumns("Groupe 1").Range.Resize(, [Feuil3!A1].Value).ClearContents
      End With
    Avec le nombre de colonnes en A1, Feuille "Feuil3".

    (efface aussi les entêtes, comme dans ton exemple).

  3. #3
    Membre confirmé
    Homme Profil pro
    ingenieur du son
    Inscrit en
    Avril 2017
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur du son
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2017
    Messages : 212
    Par défaut
    Salut Daniel déjà merci pour la réponse.

    En revanche étant un débutant en herbes j'ai mis cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.ListObjects("T_2").ListColumns("Groupe 1").Range.Resize(, [data!F11].Value).ClearContents
    il se passe rien ...
    data étant le nom de la feuille où se trouve référencé le nombre qui m'intéresse

    Petite question annexe pour manier des données dans un tableau c'est bien entre [] que l'on nomme la ligne ou colonne dans mon cas?

    y a t il une autre manière de la spécifier cette colonne?

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Je viens de tester ton code et il fait bien le boulot. J'ai mis 3 en Data!F11; et toi ? Pour plus de sureté, remplace "ActiveSheet" par le nom de la feuille. Quant à la syntaxe, tu peux utiliser celle donnée par l'enregistreur de macros, mais celle que j'utilise est la syntaxe VBA qui est plus souple.
    Avant macro :
    Nom : Annotation 2019-12-28 135319.png
Affichages : 1359
Taille : 6,8 Ko

    Après exécution :
    Nom : Annotation 2019-12-28 135351.png
Affichages : 1349
Taille : 7,6 Ko

  5. #5
    Membre confirmé
    Homme Profil pro
    ingenieur du son
    Inscrit en
    Avril 2017
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur du son
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2017
    Messages : 212
    Par défaut
    En fait oui cela fonctionne (encore un probleme interface chaise bureau) ... désolé.

  6. #6
    Membre confirmé
    Homme Profil pro
    ingenieur du son
    Inscrit en
    Avril 2017
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur du son
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2017
    Messages : 212
    Par défaut
    Donc je résume jai 10 colonnes à effacer ok je passe mon tableau à 11 colonnes la macro efface bien les 11 colonnes.
    Maintenant quand je repasse à 10 colonnes cela m'efface quand même ce qu'il y a dans la colonne suivante.
    En soit ce n'est pas grave mais quand même ...

    Et pour finir étant officellement un cass pieds qui aime comprendre ce qu 'il fait...
    je n'ai pas tout saisi sur ta ligne de code. y a t il un moyen plus "lisible" de le faire ?

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Personnellement, j'utilise simplement l'appel à une fonction qui contient une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function RemoveListColumns(oList As ListObject, LabelNames As Variant)
      ' Arguments
      '  oList      ' Objet table
      '  LabelNames ' Variable tableau contenant les étiquettes de colonnes à détruire
      Dim Elem As Integer
      For Elem = 0 To UBound(LabelNames)
        On Error Resume Next
        oList.ListColumns(LabelNames(Elem)).Delete
        On Error GoTo 0
      Next
    End Function
    Que l'on invoque comme ceci (dans l'exemple shtDb est le CodeName de la feuille)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub TestRemoveListColumns()
      Dim LabelToRemove()
      Dim objTable As ListObject
      Set objTable = shtDb.ListObjects(1)
      LabelToRemove = Array("Age", "ENFANTS", "LOGEMENT")
      '
      Application.ScreenUpdating = False
      RemoveListColumns objTable, LabelToRemove ' Supprime les colonnes
      objTable.Range.Columns.AutoFit            ' Réadapte la largeur des colonnes
      '
      Set objTable = Nothing
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Tracer graphique à partir de certaines colonnes d'un tableau
    Par Vincent32 dans le forum VB.NET
    Réponses: 1
    Dernier message: 04/04/2012, 19h59
  2. Cacher certaines colonnes d'un tableau en javascript
    Par Raiden1234 dans le forum Struts 2
    Réponses: 5
    Dernier message: 04/06/2008, 10h54
  3. Réponses: 7
    Dernier message: 17/07/2007, 15h29
  4. Comment centrer certaines colonnes d'un tableau ?
    Par Varglav dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 25/05/2007, 15h03
  5. Ne faire apparaître que certaine colonne d'un tableau
    Par zuzuu dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 20/07/2006, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo