Inversion colonnes ligne vba
Fermé
pgillou
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
-
23 août 2010 à 10:38
pgillou Messages postés 49 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 14 octobre 2010 - 24 août 2010 à 10:13
pgillou Messages postés 49 Date d'inscription lundi 23 août 2010 Statut Membre Dernière intervention 14 octobre 2010 - 24 août 2010 à 10:13
A voir également:
- Inversion colonnes ligne vba
- Aller à la ligne excel - Guide
- Site de vente en ligne particulier - Guide
- Partager photos en ligne - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Word colonnes indépendantes - Guide
7 réponses
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
293
23 août 2010 à 12:01
23 août 2010 à 12:01
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
pgillou
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
1
23 août 2010 à 13:07
23 août 2010 à 13:07
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.
Dis moi si je ne suis pas assez clair.
pgillou
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
1
23 août 2010 à 13:10
23 août 2010 à 13:10
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 ^^
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 ^^
cousinhub29
Messages postés
956
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 novembre 2024
344
23 août 2010 à 13:31
23 août 2010 à 13:31
Bonjour,
essaie avec ce code :
Bonne journée
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
pgillou
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
1
23 août 2010 à 14:10
23 août 2010 à 14:10
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
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
cousinhub29
Messages postés
956
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
18 novembre 2024
344
23 août 2010 à 14:30
23 août 2010 à 14:30
Re-,
essaie ainsi :
N'oublie pas l'Option Base 1 en tête de module
Bonne journée
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
pgillou
Messages postés
49
Date d'inscription
lundi 23 août 2010
Statut
Membre
Dernière intervention
14 octobre 2010
1
24 août 2010 à 10:13
24 août 2010 à 10:13
Salut,
Mes tests ont été concluants ,je te remercie.
Bonne journée
Mes tests ont été concluants ,je te remercie.
Bonne journée
23 août 2010 à 12:57
ou de position de colonnes dans un tableau xl
le code que je mets ne fonctionne que pour le premier cas évidemment