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

Macros et VBA Excel Discussion :

Suppresion de plusieurs colonnes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Par défaut Suppresion de plusieurs colonnes
    Bonjour le forum,

    Une petite question, assez bête je pense.

    Je souhaite supprimer plusieurs colonnes de mon classeur et aimerais faire qu'une seule ligne de commande
    J'ai donc penseé à la commande delete, que j'aimerai appliquer sur plusieurs colonnes, genre:
    Mais ce code ne fonctionne pas et je ne sais pas si cela peut fonctionner ainsi.

    Après avoir enregistré une macro, je m'apercois que le code sorti est du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C:C,D:D,E:E,I:I,J:J").delete
    Ma question est donc de savoir si je suis obligé de passer le second code ou pas?

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,


    Propriété Columns telle qu'elle s'applique à l'objet Range :

    Cette propriété renvoie un objet Range qui représente les colonnes figurant dans la plage spécifiée. En lecture seule.
    cordialement,

    Didier

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Août 2009
    Messages : 89
    Par défaut
    Bonjour,

    Si vos colonnes à supprimer sont toujours les mêmes alors en effet
    vous devez passer par le deuxième code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Range("K:M,O:O,Q:Q").Delete
    Cdlt

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Par défaut
    Merci de vos réponses.

    Ormonth, juste pour info: dans le cas ou les colonnes ne se suivent pas, le code suivant est-il bon?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns("A:A, C:F, P:Q").Delete
    Johann

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Citation Envoyé par johannj Voir le message
    Ormonth, juste pour info: dans le cas ou les colonnes ne se suivent pas, le code suivant est-il bon?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns("A:A, C:F, P:Q").Delete
    Non ! car plage discontinue :

    .Lorsqu'elle est appliquée à un objet Range constituant une sélection à zones multiples, cette propriété renvoie des colonnes uniquement à partir de la première zone de la plage. Par exemple, si l'objet Range possède deux zones — A1:B2 et C34 — Selection.Columns.Count renvoie la valeur 2, pas 4. .../...
    cf aide vba


    ps : si tu veux utiliser cette syntaxe (qui est fausse) :
    Code :

    Columns(1,2,3).Delete
    Tu passes par les numéros d'index de la collection de colonnes, tu ne peut donc en citer qu'un seul. Pour des colonnes jointes, une boucle for i = x to Y columns(i) fait l'affaire. Après ça devient plus lourd.
    Fonction de contexte, s'i y a beaucoup de colonnes et 3 ou 4 à éviter, ce peut être intéressant d'utiliser la boucle et d'exclure les non voulues avec un filtre ( If Then).
    cordialement,

    Didier

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 124
    Par défaut
    Merci de ta réponse,

    Johann

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/02/2010, 14h14
  2. Query sur plusieurs colonnes avec count(distinct...)
    Par Jeankiki dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/08/2004, 15h22
  3. Remplacer plusieurs colonnes par un 'alias'
    Par zestrellita dans le forum Langage SQL
    Réponses: 7
    Dernier message: 22/04/2004, 16h51
  4. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 17h35
  5. [PostGres] Suppresion d'une colonne.
    Par Gandalf24 dans le forum Requêtes
    Réponses: 4
    Dernier message: 23/05/2003, 09h02

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