Inversion colonnes ligne vba

Bonjour,

Je suis débutant en vba et j'ai besoin dans le cadre de mon ativité pro d'un code permettant l'inversion des colonnes d'une ligne à partir d'un sélection

Exemple

test forum internet

Résultat:

internet forum test

Merci de votre aide et surtout n'hésitez pas à me demander des précisions!

7 réponses

  1. Salut,

    Mes tests ont été concluants ,je te remercie.

    Bonne journée
    1. Re-,

      essaie ainsi :

      Option Base 1
      Sub inverse()
      Dim a, b
      Dim I As Long, J As Byte
      a = Application.Transpose(Range("A1:W2").Value)
      ReDim b(UBound(a), 2)
      J = 1
      For I = UBound(a) To LBound(a) Step -1
          b(J, 1) = a(I, 1)
          b(J, 2) = a(I, 2)
          J = J + 1
      Next I
      Range("A3:W4").Value = Application.Transpose(b)
      End Sub
      


      N'oublie pas l'Option Base 1 en tête de module

      Bonne journée
      1. Merci pour ton aide cousinhub29 !

        Il m'inverse les valeurs ligne A1:W1 en WI:A1 exactement ce que je veux.
        Permet moi d'abuser en te demandant encore une petit chose peut on l'appliquer une une plage de données du style A1:W2?

        Bonne après midi
        1. Bonjour,

          essaie avec ce code :

          Sub inverse()
          Dim a, b
          Dim I As Long, J As Byte
          a = Application.Transpose(Application.Transpose(Range("A1:W1").Value))
          ReDim b(UBound(a))
          J = 0
          For I = UBound(a) To LBound(a) Step -1
              b(J) = a(I): J = J + 1
          Next I
          Range("A2:W2").Value = b
          End Sub
          


          Bonne journée
          1. J'ai un code permettant de permutter les lignes dans une colonne ,je cherche à faire l'inverse:

            coloneSelectionne = ActiveWindow.RangeSelection.Address
            temp = Split(coloneSelectionne, ":")
            premiereCellule = temp(0)
            derniereCellule = temp(UBound(temp))
            'sert à recuperer l'indice de la ligne des cellules
            numeroPremiereCellule = Split(premiereCellule, "$")
            numeroDerniereCellule = Split(derniereCellule, "$")
            'calcule le nombre de cellules de la colone
            difference = (numeroDerniereCellule(2) - numeroPremiereCellule(2) + 1)
            Range(premiereCellule, premiereCellule).Select
            ' Déclare un tableau dynamique.
            Dim valeurColone() As Variant
            ReDim valeurColone(difference) 'aloue une taille au tableau
            i = 0
            While i <> difference
            valeurCellule = ActiveCell.Offset(i, 0).Value
            ' Initialise le tableau avec
            'les valeur de chaque cellule de la selection
            valeurColone(i) = valeurCellule
            i = i + 1
            Wend
            Dim j As Integer
            j = 0
            'je place dans la colone selectionnée
            'les valeurs du tableau valeurColone en partant de la fin.
            For i = UBound(valeurColone) - 1 To 0 Step -1
            ActiveCell.Offset(j, 0).Select
            ActiveCell.Value = valeurColone(i)
            j = 1
            Next i
            End Sub

            Pourrais tu m'indiquer ce qu'il faudrait modifier. Merci d'avance ^^
            1. Merci pour ta réponse rapide je t'explique il s'agit à partir de la sélection d'une palge de A1 à W1 d'inverser le contenue des colonnes en ligne bien sur vers une autre feuille ou sur la même feuille.

              Dis moi si je ne suis pas assez clair.
              1. petit exemple avant d'aller manger...

                Sub test()
                '
                ' inversion des mots dans une ligne
                
                
                Dim maLigne As String
                Dim Tablo() As String
                Dim LigneSortie As String
                
                maLigne = "test forum internet"
                
                Tablo = Split(maLigne, " ")
                
                For i = UBound(Tablo) To 0 Step -1
                 LigneSortie = LigneSortie & Tablo(i) & " "
                Next i
                msgbox LigneSortie
                
                End Sub
                1. En relisant, je me demande ...si tu parles de position de mot dans une phrase
                  ou de position de colonnes dans un tableau xl
                  le code que je mets ne fonctionne que pour le premier cas évidemment