Convertir (transposer) une zone de cellules PAYSAGE en version PORTRAIT...

MisterT

XLDnaute Occasionnel
Bonjour à vous tous ! :)

J'ai une feuille Excel donc j'ai disposé les cellules A1 à M38 (largeurs et hauteurs variées) afin d’être imprimée en PAYSAGE. Plusieurs de ces cellules contiennent des données.

Est-il possible de convertir (transposer) simplement le tout en PORTRAIT, donc à la verticale au lieu d'horizontale, en gardant bien sûr les bonnes hauteurs et largeurs de cellules que lorsqu'en PAYSAGE ?

Donc, par exemple la cellule A1 de hauteur 10 et largeur 5 deviendrait la cellule AL1 de hauteur 5 et largeur 10.

Je demande cela car mon fichier Excel en PAYSAGE doit être converti en PDF avec PHPExcel, mais il semble que PHPExcel n'a pas de code pour une version LANDSCAPE (PAYSAGE).

C'est la raison pour laquelle j'ai pensé à une alternative, soit de disposer ma zone Excel A1:M38 PAYSAGE en PORTRAIT.

Si quelqu'un connait le code PHPExcel pour LANDSCAPE, c'est la bienvenue, sinon mon autre alternative serait très appréciée !!!

Merci beaucoup à celui ou ceux qui prendront temps et expertise pour m'aider !!!

MisterT :)
 

Yaloo

XLDnaute Barbatruc
Re : Convertir (transposer) une zone de cellules PAYSAGE en version PORTRAIT...

Bonsoir MisterT,

Si j'ai bien compris, quelque chose comme ça, mais sans fichier avant/après difficile d'être sûr.

VB:
Option Explicit
Option Base 1
Sub Transpose_Paysage()
Dim Col(), Lig(), i&
Feuil1.Activate
For i = 1 To 13
  ReDim Preserve Col(i)
  Col(i) = ActiveWindow.PointsToScreenPixelsX(Columns(i).Width)
Next
For i = 1 To 38
  ReDim Preserve Lig(i)
  Lig(i) = ActiveWindow.PointsToScreenPixelsX(Rows(i).Height)
Next
Feuil1.[A1:M38].Copy
Feuil2.Activate
Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
[A1].Select
For i = 1 To 38
  Columns(i).ColumnWidth = ActiveWindow.PointsToScreenPixelsX(Lig(i)) / 21
Next
For i = 1 To 13
  Rows(i).RowHeight = ActiveWindow.PointsToScreenPixelsX(Col(i)) / 1.8
Next
End Sub

A+

Martial
 

MisterT

XLDnaute Occasionnel
Re : Convertir (transposer) une zone de cellules PAYSAGE en version PORTRAIT...

Bonjour Martial,

Merci beaucoup pour le code ingénieux, il fait une grande partie du travail et je suis conscient que sans le fichier, c'est moins évident...

Je m'en suis servi pour ensuite faire des ajustements à la main.

Un gros MERCI !!!

MisterT :)
 

Dormeur74

XLDnaute Occasionnel
Re : Convertir (transposer) une zone de cellules PAYSAGE en version PORTRAIT...

Bonjour Martial & MisterT

Il y a un truc que je ne comprends pas : tu dis que la cellule A1 devient la cellule AL1. Donc il s'agit d'une rotation de la matrice à 90° dans le sens des aiguilles d'une montre, non ?
 

MisterT

XLDnaute Occasionnel
Re : Convertir (transposer) une zone de cellules PAYSAGE en version PORTRAIT...

Bonjour Dormeur74 et Martial,

Oui c'est exactement cela, une rotation de la matrice à 90° dans le sens d'une montre ou dans l'autre sens, en autant que je retrouve le tout en version PORTRAIT.

Le code de Martial a fonctionné en partie: il y a eu rotation vers la gauche mais avec inversement, c'est-à-dire que ce qui aurait dû se retrouver dans la ligne 13 était dans la ligne 1 à la place...

Merci de porter attention à ma requête !!!

MisterT :)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 501
dernier inscrit
talebafia