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 :

Supprimer colonne non continue [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut Supprimer colonne non continue
    Bonjour à tous et à toute,

    J'ai un petit soucis avec ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A:C,E:E,H:I,M:Q,T:T").delete
    C'est une erreur d'exécution 1004," la méthode Delete de la classe range a échoué"

    Je pense que mon problème viens du faite que les colonnes ne sois pas contiguë.

    Je n'arrive pas à trouver de solution sans supprimer chaque section séparément.

    Pouvez-vous m'aider?

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    aucun problème avec cette instruction, qui supprime bien ces colonnes de la feuille active. Testé en revanche sur 2016 et 2013

    prend un nouveau classeur, écris en ligne 1 un truc bidon, de la colonne A à la colonne T

    exécute la ligne de code et tu es censé te retrouver avec des données uniquement sur la colonne A à H1

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    sinon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim lesCols As Range
    Set lesCols = Union(Range("A1:C1"), Range("E1"), Range("H1:I1"), Range("M1:Q1"), Range("T1"))
    lesCols.EntireColumn.Delete
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Dans un nouveau classeur cela fonction effectivement. Mais pas dans le mien :-(

    casefayere
    Cela ne fonctionne pas mieux pourtant je suis bien en .xlsx

    Je ne comprends pas pourquoi cela ne fonctionne pas.

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Vérifie que l'une (une seule suffirait à provoquer l'erreur) qu'aucune des colonne concernée n'est verrouillée ou contient une cellule verrouillée.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Non rien de verrouillé, je peux bien les supprimer une par une sans problème du moment quelles sont contiguë

  7. #7
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Peut-être comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub test()
        Dim s$, t$(), i&
            s = "A:C,E:E,H:I,M:Q,T:T": t = Split(s, ",")
            With ActiveSheet
                For i = UBound(t) To LBound(t) Step -1
                    .Range(t(i)).Delete
                Next i
            End With
    End Sub

  8. #8
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Cela ne fonctionne pas mieux pourtant je suis bien en .xlsx
    aucun rapport car tu prends un xlsx, tu ajoutes une macro, elle fonctionnera jusqu'à l'enregistrement, si tu enregistres en xlsx, tu perdras cette macro, de mon coté ma macro fonctionne (logique)
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  9. #9
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    tu me surprends, envoies le fichier (le même, avec données bidon)
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Je viens de trouver.

    Cela viens du fait que je travaille sur ma clé USB lorsque j'ai enregistrer sur le PC ça fonctionne.

    Il y a des truc bizarre par moment.

    Merci de votre aide.

  11. #11
    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 173
    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 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il y a des truc bizarre par moment.
    Si tu appliquais une règle de base qui précise la filiation complète de l'objet Range (feuille, classeur-ThisWorkbook par exemple- ), tu ne devrais pas avoir de problème.
    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

  12. #12
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Ok merci du conseil

    En faite non ça ne marche pas.

    Je n'arrive pas à les supprimer même en manuel, le problème ne viens donc pas du code.

    test sup col.xlsx

  13. #13
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    je viens de voir pourquoi, ton tableau est structuré (il fallait le préciser) donc en l'état, impossible de supprimer des colonnes discontinues, seule solution que je vois actuellement, le transformer en plage normale et supprimer les colonnes quitte à le re-transformer en tableau structuré après

    voilà une solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub supcol()
    Dim Dcel As Range, Dcol As Long
      With Sheets("Liste OS")
        .ListObjects("tableau1").Unlist  'mets le bon nom de tableau
        Dcol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        Set Dcel = .Cells(.Rows.Count, Dcol).End(xlUp)
        .Range("A:C,E:E,H:I,M:Q,T:T").Delete
        Dcol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        Set Dcel = .Cells(.Rows.Count, Dcol).End(xlUp)
        .ListObjects.Add(xlSrcRange, .Range("$A$1", Dcel), , xlYes).Name = _
        "Tableau1"'ou ce que tu veux
      End With
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  14. #14
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Désolé je ne sais pas ce qu'est un tableau structuré. C'est un "extrait" d'un tableau dynamique.

  15. #15
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    en cherchant un tout petit peu => http://silkyroad.developpez.com/excel/tableau/
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  16. #16
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 277
    Par défaut
    Merci beaucoup.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/10/2015, 14h28
  2. Réponses: 1
    Dernier message: 29/12/2005, 18h04
  3. [C#][Pocket PC]Supprimer colonne datagrid
    Par maredami dans le forum Windows Mobile
    Réponses: 4
    Dernier message: 15/11/2005, 18h39
  4. Supprimer dossier non-vide
    Par alex.hitman dans le forum Langage
    Réponses: 10
    Dernier message: 26/10/2005, 11h04
  5. Réponses: 1
    Dernier message: 28/09/2005, 18h10

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