Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Transposer 180 degrés

10 réponses
Avatar
Albert
Bonjour

J'ai une plage de chiffres sur 6 colonnes
qui va de 75 à 1 en descendant
je voudrais la transposer pour avoir de 1 à 75

actuel
75 3 4 8
74 5 7 3
----
2 5 1 4
1 4 8 9
pour avoir
9 8 4 1
4 1 5 2
-----
3 7 5 74
8 4 3 75

dans le moment je ne peux que transposer de vertical à horizontal, ou vice
versa.
ce qui me redonne la disposition originale.
merci

--
albertri-at-videotron.ca.invalid

10 réponses

Avatar
Patrick BASTARD
Bonjour, "Albert"

Données, Trier sur la première colonne, en ordre croissant, après avoir
sélectionné ta plage, devrait le faire.
Tu peux ensuite déplacer ta première colonne vers la 4°.
Ok ?

--
Bien ,

Patrick
patrick.bastardchezdbmail.com


J'ai une plage de chiffres sur 6 colonnes
qui va de 75 à 1 en descendant
je voudrais la transposer pour avoir de 1 à 75

actuel
75 3 4 8
74 5 7 3
----
2 5 1 4
1 4 8 9
pour avoir
9 8 4 1
4 1 5 2
-----
3 7 5 74
8 4 3 75

dans le moment je ne peux que transposer de vertical à horizontal, ou vice
versa.
ce qui me redonne la disposition originale.
merci

--
albertri-at-videotron.ca.invalid






Avatar
Fredo P.
http://cjoint.com/?lhsESFWTno
Sub Trans_Trans()
'
On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False
Dim Plg As Range, C As Object, i#, Plgd()
Set Plg = Range("B2:G4") 'plage à traiter
i = Application.CountA(Plg) - 1
ReDim Plgd(i)
For Each C In Plg
Plgd(i) = C
i = i - 1
Next
i = 0
For Each C In Plg
C = Plgd(i)
i = i + 1
Next
' Plg.Value = Plgd() 'ubound(plgd),plgd(0)
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub



Fredo P.


"Albert" a écrit dans le message de news:

Bonjour

J'ai une plage de chiffres sur 6 colonnes
qui va de 75 à 1 en descendant
je voudrais la transposer pour avoir de 1 à 75

actuel
75 3 4 8
74 5 7 3
----
2 5 1 4
1 4 8 9
pour avoir
9 8 4 1
4 1 5 2
-----
3 7 5 74
8 4 3 75

dans le moment je ne peux que transposer de vertical à horizontal, ou vice
versa.
ce qui me redonne la disposition originale.
merci

--
albertri-at-videotron.ca.invalid





Avatar
Albert
Bonsoir ou bonjour selon

Patrick c'est trop simple, je me botte le xxx...
Merci de m'avoir réveillé.
Albert

"Patrick BASTARD" a écrit dans le
message de news:%
Bonjour, "Albert"

Données, Trier sur la première colonne, en ordre croissant, après avoir
sélectionné ta plage, devrait le faire.
Tu peux ensuite déplacer ta première colonne vers la 4°.
Ok ?

--
Bien ,

Patrick
patrick.bastardchezdbmail.com


J'ai une plage de chiffres sur 6 colonnes
qui va de 75 à 1 en descendant
je voudrais la transposer pour avoir de 1 à 75

actuel
75 3 4 8
74 5 7 3
----
2 5 1 4
1 4 8 9
pour avoir
9 8 4 1
4 1 5 2
-----
3 7 5 74
8 4 3 75

dans le moment je ne peux que transposer de vertical à horizontal, ou
vice versa.
ce qui me redonne la disposition originale.
merci

--
albertri-at-videotron.ca.invalid









Avatar
Albert
Merci Fredo P.
Mais la réponse de Patrick me satisfait pleinement, c'est exactement ce que
j'ai besoin.
Et je n'ai pas d'excuse pour ne pas y avoir pensé.
Albert

"Fredo P." a écrit dans le message
de news:eM%


http://cjoint.com/?lhsESFWTno
Sub Trans_Trans()
'
On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False
Dim Plg As Range, C As Object, i#, Plgd()
Set Plg = Range("B2:G4") 'plage à traiter
i = Application.CountA(Plg) - 1
ReDim Plgd(i)
For Each C In Plg
Plgd(i) = C
i = i - 1
Next
i = 0
For Each C In Plg
C = Plgd(i)
i = i + 1
Next
' Plg.Value = Plgd() 'ubound(plgd),plgd(0)
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub



Fredo P.


"Albert" a écrit dans le message de news:

Bonjour

J'ai une plage de chiffres sur 6 colonnes
qui va de 75 à 1 en descendant
je voudrais la transposer pour avoir de 1 à 75

actuel
75 3 4 8
74 5 7 3
----
2 5 1 4
1 4 8 9
pour avoir
9 8 4 1
4 1 5 2
-----
3 7 5 74
8 4 3 75

dans le moment je ne peux que transposer de vertical à horizontal, ou
vice versa.
ce qui me redonne la disposition originale.
merci

--
albertri-at-videotron.ca.invalid









Avatar
Fredo P.
Une petite amélio

http://cjoint.com/?lhtdhGpkwu

Sub Trans_Trans()
'
On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False
Dim Plg As Range, C As Object, i#, J#, JJ#, Plgd()
Set Plg = Range("B2:G4") 'plage à traiter
i = Plg.Rows.Count - 1: J = Plg.Columns.Count - 1
JJ = J
ReDim Plgd(i, J)
For Each C In Plg
Plgd(i, J) = C
J = J - 1
i = i + (J < 0)
J = J + (J < 0) * -JJ
Next
Plg = Plgd()
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Fredo P.


"Albert" a écrit dans le message de news:

Bonjour

J'ai une plage de chiffres sur 6 colonnes
qui va de 75 à 1 en descendant
je voudrais la transposer pour avoir de 1 à 75

actuel
75 3 4 8
74 5 7 3
----
2 5 1 4
1 4 8 9
pour avoir
9 8 4 1
4 1 5 2
-----
3 7 5 74
8 4 3 75

dans le moment je ne peux que transposer de vertical à horizontal, ou vice
versa.
ce qui me redonne la disposition originale.
merci

--
albertri-at-videotron.ca.invalid





Avatar
Fredo P.
Ce sont les données de ton tableau n'étant pas en ordre décroissant sur
toutes les colonnes qui m'ont poussé à voir une autre solution, la
transposition sans tri préalable. Bon!, que cela serve pour le moins
d'école.


"Albert" a écrit dans le message de news:
%
Merci Fredo P.
Mais la réponse de Patrick me satisfait pleinement, c'est exactement ce
que j'ai besoin.
Et je n'ai pas d'excuse pour ne pas y avoir pensé.
Albert

"Fredo P." a écrit dans le
message de news:eM%


http://cjoint.com/?lhsESFWTno
Sub Trans_Trans()
'
On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False
Dim Plg As Range, C As Object, i#, Plgd()
Set Plg = Range("B2:G4") 'plage à traiter
i = Application.CountA(Plg) - 1
ReDim Plgd(i)
For Each C In Plg
Plgd(i) = C
i = i - 1
Next
i = 0
For Each C In Plg
C = Plgd(i)
i = i + 1
Next
' Plg.Value = Plgd() 'ubound(plgd),plgd(0)
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub



Fredo P.


"Albert" a écrit dans le message de news:

Bonjour

J'ai une plage de chiffres sur 6 colonnes
qui va de 75 à 1 en descendant
je voudrais la transposer pour avoir de 1 à 75

actuel
75 3 4 8
74 5 7 3
----
2 5 1 4
1 4 8 9
pour avoir
9 8 4 1
4 1 5 2
-----
3 7 5 74
8 4 3 75

dans le moment je ne peux que transposer de vertical à horizontal, ou
vice versa.
ce qui me redonne la disposition originale.
merci

--
albertri-at-videotron.ca.invalid












Avatar
Fredo P.
Si en + je mets des trucs qui m..!

http://cjoint.com/?lhtzmUWICC
--

Fredo P.


"Albert" a écrit dans le message de news:
%
Merci Fredo P.
Mais la réponse de Patrick me satisfait pleinement, c'est exactement ce
que j'ai besoin.
Et je n'ai pas d'excuse pour ne pas y avoir pensé.
Albert

"Fredo P." a écrit dans le
message de news:eM%


http://cjoint.com/?lhsESFWTno
Sub Trans_Trans()
'
On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False
Dim Plg As Range, C As Object, i#, Plgd()
Set Plg = Range("B2:G4") 'plage à traiter
i = Application.CountA(Plg) - 1
ReDim Plgd(i)
For Each C In Plg
Plgd(i) = C
i = i - 1
Next
i = 0
For Each C In Plg
C = Plgd(i)
i = i + 1
Next
' Plg.Value = Plgd() 'ubound(plgd),plgd(0)
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub



Fredo P.


"Albert" a écrit dans le message de news:

Bonjour

J'ai une plage de chiffres sur 6 colonnes
qui va de 75 à 1 en descendant
je voudrais la transposer pour avoir de 1 à 75

actuel
75 3 4 8
74 5 7 3
----
2 5 1 4
1 4 8 9
pour avoir
9 8 4 1
4 1 5 2
-----
3 7 5 74
8 4 3 75

dans le moment je ne peux que transposer de vertical à horizontal, ou
vice versa.
ce qui me redonne la disposition originale.
merci

--
albertri-at-videotron.ca.invalid












Avatar
garnote
Ave,

Et pour le plaisir :

Sub Rotation_Plage_180()
Set p = Selection
NC = p.Columns.Count
Set p1 = p.Offset(0, NC + 1)
n = p.Count
For i = 1 To n
p1(i) = p(n + 1 - i)
Next i
End Sub

J'ai choisi d'installer la plage pivotée de 180 degrés
à droite de la plage initiale. Choix arbitraire.

Serge
Avatar
Albert
Merci Fredo P.
démonstrations très intéressantes,
j'espère avoir le courage de me mettre bientôt au VBA
merci Albert


"Fredo P." a écrit dans le message
de news:
Si en + je mets des trucs qui m..!

http://cjoint.com/?lhtzmUWICC
--

Fredo P.


"Albert" a écrit dans le message de news:
%
Merci Fredo P.
Mais la réponse de Patrick me satisfait pleinement, c'est exactement ce
que j'ai besoin.
Et je n'ai pas d'excuse pour ne pas y avoir pensé.
Albert

"Fredo P." a écrit dans le
message de news:eM%


http://cjoint.com/?lhsESFWTno
Sub Trans_Trans()
'
On Error Resume Next
Application.EnableEvents = False
Application.ScreenUpdating = False
Dim Plg As Range, C As Object, i#, Plgd()
Set Plg = Range("B2:G4") 'plage à traiter
i = Application.CountA(Plg) - 1
ReDim Plgd(i)
For Each C In Plg
Plgd(i) = C
i = i - 1
Next
i = 0
For Each C In Plg
C = Plgd(i)
i = i + 1
Next
' Plg.Value = Plgd() 'ubound(plgd),plgd(0)
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub



Fredo P.


"Albert" a écrit dans le message de news:

Bonjour

J'ai une plage de chiffres sur 6 colonnes
qui va de 75 à 1 en descendant
je voudrais la transposer pour avoir de 1 à 75

actuel
75 3 4 8
74 5 7 3
----
2 5 1 4
1 4 8 9
pour avoir
9 8 4 1
4 1 5 2
-----
3 7 5 74
8 4 3 75

dans le moment je ne peux que transposer de vertical à horizontal, ou
vice versa.
ce qui me redonne la disposition originale.
merci

--
albertri-at-videotron.ca.invalid
















Avatar
garnote
Et pour une rotation "sur place" :

Sub Rotation_Plage_180_Sur_Place()
Dim v()
Set p = Selection
n = p.Count
ReDim v(1 To n)
For i = 1 To n
v(i) = p(i)
Next i
For j = 1 To n
p(j) = v(n + 1 - j)
Next j
End Sub

Ne reste plus qu'à trouver un truc pour
des rotations de 90 et 270 degrés ;-)

Serge


"garnote" a écrit dans le message de news:

Ave,

Et pour le plaisir :

Sub Rotation_Plage_180()
Set p = Selection
NC = p.Columns.Count
Set p1 = p.Offset(0, NC + 1)
n = p.Count
For i = 1 To n
p1(i) = p(n + 1 - i)
Next i
End Sub

J'ai choisi d'installer la plage pivotée de 180 degrés
à droite de la plage initiale. Choix arbitraire.

Serge