Inversion de colonne VBA

Résolu
texastina Messages postés 55 Statut Membre -  
texastina Messages postés 55 Statut Membre -
Bonjour,

Je voudrai savoir si il était possible d'inverser le contenu de plusieurs colonnes gràce au vba ?
Ex : Colonne D ==> Colonne B
Colonne B ==> Colonne C
Colonne C ==> Colonne D

J'espere avoir été assé claire :)

Merci pour vos réponse :)

4 réponses

  1. Maurice
     
    Bonjour
    Moi je prefere deplacer la colonne
    example:
    Sub DeplaceCol()
       Columns(4).Cut
       Columns(2).Insert Shift:=xlToRight
       Range("A1").Select
    End Sub
    

    A+
    Maurice
    2
    1. texastina Messages postés 55 Statut Membre
       
      Merci pour ta réponse je les reproduite et ca marche :)
      je choisi ta méthode je la trouve plus simple

      Merci à vous Bonne journée :)
      0
  2. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    Bonjour,

    Oui, c'est possible. Tu peux même te limiter au premier déplacement :colonne D devant colonne B.
    Les autres colonnes seront automatiquement à la bonne place.

    Si au delà de ta question tu souhaites savoir comment faire, utilises l'enregistreur de macro et tu auras le code.

    Cordialement
    1
  3. diablo13800 Messages postés 3469 Date d'inscription   Statut Membre Dernière intervention   1 872
     
    Bonjour,

    Oui cela est possible grâce a la suite de commande copy et paste

    Dans ton cas:
    dim exemple as Range  // Déclaration de ton champs d'action
    exemple = Range("A1;E600)  // Selection d'une range large,  a adapter suivant la Longueur de tes colonnes.
    exemple.Column(4).select     // Selectionne la colonne D
    Selection.copy                //Copie de la Colonne selectionner
    
    exemple.Column(5).select  //Selectionne la Colonne E 
    ActiveSheet.Paste              // Colle ce qui est copier dans la colonne selectionnée


    J'espère avoir été assez claire , a faire suivant ton désir:)
    Tiens moi au courant si il y a un truc que tu ne comprend pas.
    0
    1. texastina Messages postés 55 Statut Membre
       
      Merci pour ta réponse :)
      Tu as été claire j'ai compris et reproduit sur mon tableau !

      Apres j'ai ausi reproduit la méthode de Maurice et je la trouve plus simple :)
      0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    bonjour
    essaies:

    Option Explicit
    '------------------
    Sub bcd_cdb()
    Dim Derlig As Integer, T_in, T_out, cptr As Integer

    Application.ScreenUpdating = False
    Derlig = Cells.Find(what:="*", searchdirection:=xlPrevious).Row
    T_in = Range("B1:D" & Derlig)
    ReDim T_out(1 To Derlig, 1 To 3)
    For cptr = 1 To UBound(T_in)
    T_out(cptr, 1) = T_in(cptr, 3) '
    T_out(cptr, 2) = T_in(cptr, 1) '
    T_out(cptr, 3) = T_in(cptr, 2) '
    Next
    Range("B1").Resize(UBound(T_in), 3) = T_out

    End Sub

    0
    1. texastina Messages postés 55 Statut Membre
       
      Bonjour Mchel
      Merci pour ta réponse cela fonctionne aussi :)
      0