Bonjour à tous,

Je souhaite transposer une colonne sur plusieurs lignes en ajoutant un retour à la ligne :
- Condition 1 : dès qu'il y a une nouvelle chaine de caractère de type "NomX prénom"
- Condition 2 (sous condition 1) : dès qu'il y a une nouvelle chaine de caractère de type "ABCD1234", ce format étant constant (4 lettres et 4 chiffres)

Un exemple des données à transposer :

Nom1 prenom
ABCD1234
DD/MM/YYYY
Nom2 prenom
EFGH1234
DD/MM/YYYY
DD/MM/YYYY
DD/MM/YYYY
IJKL1234
DD/MM/YYYY
MNOP1234
DD/MM/YYYY
DD/MM/YYYY
Nom3 prenom
QRST1234
DD/MM/YYYY
DD/MM/YYYY
UVWX1234
DD/MM/YYYY
DD/MM/YYYY
DD/MM/YYYY
....

Ce qui donnerait :


ligne1 : Nom1 prenom;ABCD1234;DD/MM/YYYY
ligne2 : Nom2 prenom;EFGH1234;DD/MM/YYYY;DD/MM/YYYY;DD/MM/YYYY
ligne3 : "";IJKL1234;DD/MM/YYYY
ligne4 : "";MNOP1234;DD/MM/YYYY;DD/MM/YYYY
ligne5 : Nom3 prenom;QRST1234;DD/MM/YYYY;DD/MM/YYYY
ligne6 : "";UVWX1234;DD/MM/YYYY;DD/MM/YYYY;DD/MM/YYYY
....

J'ai trouvé un début de solution proposée par boisgontierjacques dans le post suivant :

https://www.developpez.net/forums/d1.../#post10740040

Le code est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Sub UneColonnePlusieursLignes()
   Set début = Range("A1")
   fin = [A65000].End(xlUp).Row
   Set dest = Range("C2")
   Taille = 10
   InterVert = 1
   For ligne = 0 To fin Step Taille
      a = début.Offset(ligne).Resize(Taille)
      lignedest = (ligne \ Taille) * InterVert
      dest.Offset(lignedest, 0).Resize(, Taille) = Application.Transpose(a)
   Next ligne
End Sub
Auriez-vous l'amabilité de me le compléter svp?

En vous remerciant par avance pour vos contributions

Cordialement.