O
olivierd
Guest
bonjour ami lecteur(rice)
j'utilise bêtement sans comprendre une fonction VBA ( TRANSPOSE )qui tournait très correctement jusqu'à la mise à jour de notre Excel..maintenant, elle fonctionne, mais elle est très longue pour quelques données à transposer.
euh... ami savant, aurais-tu une alternative pour faire la même chose en plus rapido ? ( si oui, je promet de me prosterner devant ton pseudo pendant 8 jours )
Cordialement
olivierd
Option Explicit
Sub Transpose()
Application.ScreenUpdating = False
Dim DerniereColonne As Integer
Dim DerniereLigne As Integer
Dim i As Integer
DerniereColonne = Range("B1").End(xlToRight).Column
DerniereLigne = 161
For i = 1 To DerniereColonne - 1
Range("A1").Offset(0, i).Select
Range(ActiveCell, ActiveCell.Offset(DerniereLigne, 0)).Copy
Range("A" & CStr(DerniereLigne * i + 1)).Select
Selection.PasteSpecial Paste:=xlAll
Next
Range("B1", Range("B1").Offset(DerniereLigne, DerniereColonne)).Clear
Range("A1").Select
End Sub
j'utilise bêtement sans comprendre une fonction VBA ( TRANSPOSE )qui tournait très correctement jusqu'à la mise à jour de notre Excel..maintenant, elle fonctionne, mais elle est très longue pour quelques données à transposer.
euh... ami savant, aurais-tu une alternative pour faire la même chose en plus rapido ? ( si oui, je promet de me prosterner devant ton pseudo pendant 8 jours )
Cordialement
olivierd
Option Explicit
Sub Transpose()
Application.ScreenUpdating = False
Dim DerniereColonne As Integer
Dim DerniereLigne As Integer
Dim i As Integer
DerniereColonne = Range("B1").End(xlToRight).Column
DerniereLigne = 161
For i = 1 To DerniereColonne - 1
Range("A1").Offset(0, i).Select
Range(ActiveCell, ActiveCell.Offset(DerniereLigne, 0)).Copy
Range("A" & CStr(DerniereLigne * i + 1)).Select
Selection.PasteSpecial Paste:=xlAll
Next
Range("B1", Range("B1").Offset(DerniereLigne, DerniereColonne)).Clear
Range("A1").Select
End Sub