Bonsoir à tous,
en ce moment je buche sur un programme en vb pour des références de pièces et j'avoue avoir crée un programme un peu lourd !
J'expose mon problème, en fait, dans la cellule on entre une série de numéros espacés par des tirets contenant 6 chiffres chacun (ex: 111111-222222 -333333 ....) Et à vrai dire, j'avais envie de créer une macro, qui a partir de la cellule active et de ces séries de numéros ordonnés en ligne, de les ordonner en colonne a partir de la cellule (1,1)
j'ai donc écrit ce boulet :
ce programme est horrible mais il fonctionne correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Sub ordonner () Dim iact As Integer, jact As Integer iact = ActiveCell.Row jact = ActiveCell.Column k = Cells(iact, jact).Value Cells(1, 1).Select If Len(k) = 6 Then Cells(1, 1).Value = k ElseIf Len(k) = 13 Then Cells(1, 1).Value = Left(k, 6) Cells(2, 1).Value = Mid(k, 8, 6) ElseIf Len(k) = 20 Then Cells(1, 1).Value = Left(k, 6) Cells(2, 1).Value = Mid(k, 8, 6) Cells(3, 1).Value = Mid(k, 15, 6) ElseIf Len(k) = 27 Then Cells(1, 1).Value = Left(k, 6) Cells(2, 1).Value = Mid(k, 8, 6) Cells(3, 1).Value = Mid(k, 15, 6) Cells(4, 1).Value = Mid(k, 22, 6) ElseIf Len(k) = 34 Then Cells(1, 1).Value = Left(k, 6) Cells(2, 1).Value = Mid(k, 8, 6) Cells(3, 1).Value = Mid(k, 15, 6) Cells(4, 1).Value = Mid(k, 22, 6) Cells(5, 1).Value = Mid(k, 29, 6) end if end sub
Voyez vous un moyen de le simplifier ou même si vous connaissez d'autres méthodes, je suis a votre écoute. peut etre une boucle pour les lignes mais après je ne sais pas trop quoi faire, je me suis arrété au cas len(k)=34 mais si ca se trouve demain j'aurai besoin d'aller jusqua len(k)=200
Partager