Inversion colonnes ligne vba
pgillou
Messages postés
53
Statut
Membre
-
pgillou Messages postés 53 Statut Membre -
pgillou Messages postés 53 Statut Membre -
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!
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
-
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
-
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. -
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 ^^ -
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
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 -
Salut,
Mes tests ont été concluants ,je te remercie.
Bonne journée