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 :

copier plusieurs colonnes non consécutive avec .Columns() [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 43
    Par défaut copier plusieurs colonnes non consécutive avec .Columns()
    Bonjour,

    Y-a-t-il un moyen pour copier plusieurs colonnes non consécutive en utilisant leur numéros ?
    Par ex :
    pour la propriété Range on peut le faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("A:A, C:C, AZ:AZ, DP:DP...etc").Copy
    mais avec .Columns je ne sais pas, marche, mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns(1,2, 6, 10, 100).Copy
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Columns(1:1, 3:3, 7:7, ..etc).Copy
    ne marchent pas

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 75
    Par défaut
    Il faut faire un range de plusieurs colonnes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MySheet.range(MySheet.columns(1),MySheet.columns(3)).Copy

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 51
    Par défaut
    Pas testé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim sel
    Set sel = Range(Columns(3), Columns(6))

  4. #4
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 43
    Par défaut
    Merci à vous, les deux solutions marchent.

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Sheets("Feuil1")
        Union(.Columns(1), .Columns(3), .Columns(5), .Columns(24)).Copy Sheets("Feuil2").Range("A1")
    End With

  6. #6
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 43
    Par défaut
    Est-ce la méthode Union a un nombre limité de paramètres ?

    Car j'ai une erreur "Wrong number of arguments or invalid property assignment" avec ce morceau de code

    Et quand j'enlève 1 paramètre, n'importe lequel, ça passe.

    Pareil pour les deux autres solutions au dessus.

    note: les colxxx sont les numéro de colonnes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Sheets(tmp)
                Union(.Columns(colquote_num), .Columns(colopp_num), .Columns(colacc_name), .Columns(colyea), .Columns(colq), .Columns(colfw), .Columns(colpole), .Columns(colregion), .Columns(colpays), _
                      .Columns(colge_mod), .Columns(colcp), .Columns(colqty), .Columns(coltot_equip_lp), .Columns(colaop), .Columns(colsp_net), .Columns(colTI), .Columns(colNESP), .Columns(colicv), .Columns(colNLs), .Columns(colinstall), .Columns(colwty), _
                      .Columns(colFMI), .Columns(colApps), .Columns(colSales_com), .Columns(colAgent_com), .Columns(colTot_com), .Columns(colTot_transp), .Columns(colOther), .Columns(colCM), .Columns(colCM_pct), .Columns(colpct_dis)).Copy
     
           End With

  7. #7
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    combien tu as de colonnes?
    J'ai fais le test ci-joint, je n'ai rencontré pas de limite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim i As Integer
    Dim plage As Range
    Dim tablo
     
    tablo = Array(1, 3, 5, 7, 8, 9, 11, 13, 15, 17, 18, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 42, 43, 45, 47, 48, 49, 50, 52, 54, 56, 57, 59, 61, 63, 65, 67, 69, 71, 76, 78, 79, 83, 84, 87, 99, 111, 120, 122, 124, 126, 128, 130, 132, 134, 136, 137, 139, 141)
    Set plage = Columns(tablo(0))
    For i = 1 To UBound(tablo)
        Set plage = Union(plage, Columns(tablo(i)))
    Next i
    plage.Select
    et même avec ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim i As Integer
    Dim plage As Range
    Set plage = Columns(1)
    For i = 2 To 255
        Set plage = Union(plage, Columns(i))
    Next i
    plage.Select
    les 255 colonnes sont prises en compte

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

Discussions similaires

  1. [XL-2013] Copier colonnes non consécutives et les collées avec un écart de colonnes voulu
    Par namora dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/04/2015, 20h10
  2. Réponses: 11
    Dernier message: 12/09/2014, 16h02
  3. [PPT-2007] Sélection de plusieurs colonnes non adjacentes
    Par alers dans le forum Powerpoint
    Réponses: 0
    Dernier message: 29/03/2013, 13h39
  4. [XL-2007] récapitulatif avec colonnes non consécutives
    Par stephadm dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/05/2012, 08h38
  5. Colonne NON NULL avec DEFAULT
    Par PickEpique dans le forum Développement
    Réponses: 2
    Dernier message: 21/08/2008, 14h10

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