Bonjour à tous,
J'ai un fichier qui se compose d'une seule colonne.
Dans cette colonne, c'est une liste de plusieurs clients qui vont exposer à un salon, avec pour chaque client plusieurs infos.
J'aimerais que toutes les infos pour chaque client soient sur une même ligne pour que ce soit plus lisible.
Le tableau étant très long (environ 10 000 lignes), j'aimerais réaliser une macro pour cela.
en gros je voudrais:
client 1
info 1
info 1
info 1
client 2
info 2
info 2
info 2
-->
client 1 | info 1| info 1| info 1
client 2 | info 2| info 2| info 2
Ce qui me pose problème c'est qu'il n'y a pas le même nombre d'infos par client. Par contre la ligne de la dernière info d'un client commence par "Hall" (c'est l'adresse de son stand sur le salon)
Ainsi, je souhaiterais une macro permettant de retourner à la ligne une fois qu'elle a traité la ligne "Hall***"
J'ai trouvé ce bout de code sur un autre forum, mais il n'est efficace que si le nombre d'info par client est identique:
Private Sub cmdGO_Click()
'
Dim tTab
Dim tTab1()
'
Dim iRow As Long
Dim iTemp As Long
'
iRow = Range("A" & Rows.Count).End(xlUp).Row
tTab = Range("A2:A" & iRow)
iFlag = Int((iRow - 1) / 6) + 1
ReDim tTab1(iFlag, 5)
'
iTemp = 0
For x = 1 To iFlag
For y = 1 To 6
iTemp = iTemp + 1
If iTemp <= iRow - 1 Then
tTab1(x - 1, y - 1) = tTab(iTemp, 1)
End If
Next
Next
Range("B2:G" & iFlag + 1) = tTab1
Range("B2:G" & iFlag + 1).BorderAround LineStyle:=xlContinuous
For x = 2 To iFlag + 1 Step 12
Range("B" & x & ":G" & x + 5).Interior.Color = RGB(215, 215, 215)
Range("B" & x & ":G" & x + 5).BorderAround LineStyle:=xlContinuous
Next
'
End Sub
Pour info, je commence juste à me mettre sur les macros, donc je suis pas encore hyper calé
Merci de votre aide!
Je vous met une partie du fichier en pièce jointe