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 :

Ranger et echanger des colonnes de range


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut Ranger et echanger des colonnes de range
    Bonjour,

    J'aimerais pouvoir a partir d'un range de base pouvoir le modifier
    J'utilise un tableau intermediaire , pouvez vous me proposer des alternatives a ce tableau ?
    des methodes que je ne connaitrais peut etre pas .
    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set MyRange = ThisWorkbook.Worksheets("Feuil1").Range("A1:C10")
    MyRange.Select
    Set cell = MyRange
    TabValeurs = MyRange.Columns(1).Value
    MyRange.Columns(1).Value = MyRange.Columns(3).Value
    MyRange.Columns(3).Value = TabValeurs
    End Sub
    Ici j'interverti la 1 et la 3 pazr exemple

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    un bon code n'utilise pas de Select (example sans) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        With Range("Feuil1!A1:C10")
                           VA = .Columns(1).Value
            .Columns(1).Value = .Columns(3).Value
            .Columns(3).Value = VA
        End With
    Variante de la ligne n°1 avec le CodeName: With Feuil1.[A1:C10]

    _____________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    _____________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo

  3. #3
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    Oui sauf que le select que j'utilise est tout a fait inutile je l'avais mis pour le debugger .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     With Range("Feuil1!A1:C10")
                           VA = .Columns(1).Value
            .Columns(1).Value = .Columns(3).Value
            .Columns(3).Value = VA
        End With
    Des idees??

  4. #4
    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,

    pour intervertir deux colonnes, tu n'as pas d'autre choix que de stocker une colonne dans un troisième contenant temporaire
    le tableau étant la solution la plus rapide et la moins gourmande, pourquoi veux-tu procéder autrement ?

  5. #5
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    c'est pas que je veux fonctionner autrement mais des fois que l'on puisse le faire avec une methode de range que je ne connais pas , je demande a tout hasard, mais si tu dis que ca n'est pas possible je crois bien que ca l'est lol. merci

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Tu peux aussi utiliser le couper-coller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Set pl = Range("A1:C10")
        pl.Cut
        pl.Offset(, -1).Insert Shift:=xlToRight
    eric

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

Discussions similaires

  1. [JTable] les noms des colonnes de s'affichent pas
    Par macben dans le forum Composants
    Réponses: 6
    Dernier message: 25/04/2008, 11h03
  2. DBGrid : enregister la position des colonnes
    Par Harry dans le forum Bases de données
    Réponses: 8
    Dernier message: 21/07/2004, 21h27
  3. En-tête d'un des colonnes d'un tableau
    Par Mvu dans le forum ASP
    Réponses: 2
    Dernier message: 06/05/2004, 17h13
  4. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19
  5. Dimensions des colonnes d'un TDBGrid
    Par osmose22 dans le forum C++Builder
    Réponses: 4
    Dernier message: 11/12/2002, 11h27

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