Transposition Automatique

  • Initiateur de la discussion Initiateur de la discussion druchmoain
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

druchmoain

Guest
Bonjour,

comment faire pour la ligne 9, puis la ligne 10 ….(le fichier complet comprend 18000 lignes)

pour que je transpose AUTOMATIQUEMENT, la ligne9 en U9, puis la ligne10 (20 lignes plus bas) en U29 …

Le plus serait que losque la cellule est vide (ex: L9), on ne laisse pas de lignes vides.

Merci d'avance, si vous avez des idées pour solutionner le problème.

PS: j'explique très TRES mal, mais c'est plus comprehensible avec le fichier joint
 

Pièces jointes

Dernière modification par un modérateur:
Re : Transposition Automatique

Bonjour druchmoain

Une proposition par macro :

VB:
Sub test()
Dim I&, X&, T As Variant
Application.ScreenUpdating = False
With Sheets("Feuil1")
    For I = 9 To .Cells(.Rows.Count, 1).End(3).Row
        T = .Range(.Cells(I, 1), .Cells(I, 20))
        X = .Cells(.Rows.Count, 21).End(3)(2).Row
        X = IIf(X < 9, 9, X)
        .Cells(X, 21).Resize(UBound(T, 2), 1) = Application.Transpose(T)
    Next I
End With
Application.ScreenUpdating = True
End Sub


Pour lancer le code Alt + F8 et lancer Test.

Cordialement

EDIT Bonjour MRomain 🙂 😀
 

Pièces jointes

Dernière édition:
Re : Transposition Automatique

Merci pour vos 2 réponses ultra-rapide,

effectivement Efgé, ta macro est rapide et répond parfaitement à ce que je cherche à faire,

mais la méthode de Mromain sans macro marche aussi !
 
Re : Transposition Automatique

La même macro, mais en laissant les lignes vides !

Merci Efgé

Bonjour druchmoain

Une proposition par macro :

VB:
Sub test()
Dim I&, X&, T As Variant
Application.ScreenUpdating = False
With Sheets("Feuil1")
    For I = 9 To .Cells(.Rows.Count, 1).End(3).Row
        T = .Range(.Cells(I, 1), .Cells(I, 20))
        X = .Cells(.Rows.Count, 21).End(3)(2).Row
        X = IIf(X < 9, 9, X)
        .Cells(X, 21).Resize(UBound(T, 2), 1) = Application.Transpose(T)
    Next I
End With
Application.ScreenUpdating = True
End Sub


Pour lancer le code Alt + F8 et lancer Test.

Cordialement

EDIT Bonjour MRomain 🙂 😀
 
Dernière modification par un modérateur:
Re : Transposition Automatique

Re

Pour garder les "Balncs" :
VB:
Sub test2()
Dim I&, X&, T As Variant
Application.ScreenUpdating = False
X = -11
With Sheets("Feuil1")
    For I = 9 To .Cells(.Rows.Count, 1).End(3).Row
        T = .Range(.Cells(I, 1), .Cells(I, 20))
        X = X + 20
        .Cells(X, 21).Resize(UBound(T, 2), 1) = Application.Transpose(T)
    Next I
End With
Application.ScreenUpdating = True
End Sub
Cordialement
 
Re : Transposition Automatique

Merci infiniment,
bonne soirée !

Re

Pour garder les "Balncs" :
VB:
Sub test2()
Dim I&, X&, T As Variant
Application.ScreenUpdating = False
X = -11
With Sheets("Feuil1")
    For I = 9 To .Cells(.Rows.Count, 1).End(3).Row
        T = .Range(.Cells(I, 1), .Cells(I, 20))
        X = X + 20
        .Cells(X, 21).Resize(UBound(T, 2), 1) = Application.Transpose(T)
    Next I
End With
Application.ScreenUpdating = True
End Sub
Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

S
Réponses
0
Affichages
488
S
D
  • Question Question
2 3
Réponses
31
Affichages
4 K
darknigthmare
D
B
Réponses
4
Affichages
2 K
benoitoleron
B
Retour