avyrex1626
XLDnaute Nouveau
Bonjour.
J'ai un fichier excel dont, dans les cellules de la colonne N, il peux y avoir des numéro de PO du format(00000-00).
Ex:360546-60
Par contre, dans certaine cellules, il peut y avoir plusieurs PO ex:087734-67, 221964-67, 221960-67, 097974-24, 221919-60
Mon problème est que je veux que la macro puise séparrer les PO s'il en a plus que un.
La facon de les séparer serais comme suis:
Le premier PO de la série reste sur la même ligne et cellule. Pour les autres, il doit inserrer une ligne en dessous et insérer le 2e numéro de PO dans la cellule de la colonne N. S'il en a un 3e, il ajoute un autre ligne en dessous et ajour le 3e po dans le cellule de la colonne N et etc...
So la cellule est vide, il n'y a rien a faire, et s'il y a qu'un seul numéro de PO, il le laisse tellquelle.
De plus, il dois aussi ajouter avec les POs des autres ligne, la même valeur de la colonne M-O-P et Q de la ligne premiere ou tous les PO ce trouvait au départ.
Bonjour.
J'ai un fichier excel, dans les cellules de la colonne N, il peut y avoir des numéros de PO du format(00000-00).
Ex: 360546-60
Par contre, dans certaines cellules, il peut y avoir plusieurs PO ex:[ B]087734-67, 221964-67, 221960-67, 097974-24, 221919-60[/B] Donc chaque PO est séparer par une virgule.
Mon problème est que je veux que la macro puisse séparer les PO s'il en a plus qu'un.
La façon de les séparer serait comme suit:
le premier PO de la série reste sur la même ligne et cellule. Pour les autres, il doit insérer une ligne en dessous et insérer le 2e numéro du PO dans la cellule de la colonne N. S'il en a un 3e, il ajoute une autre ligne en dessous et ajoute le 3e po dans la cellule de la colonne N et etc.
Si la cellule est vide, il n'y a rien à faire, et s'il y a qu'un seul numéro de PO, il le laisse tell quelle.
De plus, il doit aussi ajouter avec les pos des autres lignes, la même valeur de la colonne M-O-P et Q de la ligne première où toutes les PO se trouvait au départ.
Jusqu'à maintenant, voici le code mais je n'arrive pas à l'aisser que le premier PO de la série sur la première ligne. De plus, si le numéro commence par "0", il éfface le zéro.
Comment puise corriger la macro s.v.p?
Merci pour votre aide.
J'ai un fichier excel dont, dans les cellules de la colonne N, il peux y avoir des numéro de PO du format(00000-00).
Ex:360546-60
Par contre, dans certaine cellules, il peut y avoir plusieurs PO ex:087734-67, 221964-67, 221960-67, 097974-24, 221919-60
Mon problème est que je veux que la macro puise séparrer les PO s'il en a plus que un.
La facon de les séparer serais comme suis:
Le premier PO de la série reste sur la même ligne et cellule. Pour les autres, il doit inserrer une ligne en dessous et insérer le 2e numéro de PO dans la cellule de la colonne N. S'il en a un 3e, il ajoute un autre ligne en dessous et ajour le 3e po dans le cellule de la colonne N et etc...
So la cellule est vide, il n'y a rien a faire, et s'il y a qu'un seul numéro de PO, il le laisse tellquelle.
De plus, il dois aussi ajouter avec les POs des autres ligne, la même valeur de la colonne M-O-P et Q de la ligne premiere ou tous les PO ce trouvait au départ.
Bonjour.
J'ai un fichier excel, dans les cellules de la colonne N, il peut y avoir des numéros de PO du format(00000-00).
Ex: 360546-60
Par contre, dans certaines cellules, il peut y avoir plusieurs PO ex:[ B]087734-67, 221964-67, 221960-67, 097974-24, 221919-60[/B] Donc chaque PO est séparer par une virgule.
Mon problème est que je veux que la macro puisse séparer les PO s'il en a plus qu'un.
La façon de les séparer serait comme suit:
le premier PO de la série reste sur la même ligne et cellule. Pour les autres, il doit insérer une ligne en dessous et insérer le 2e numéro du PO dans la cellule de la colonne N. S'il en a un 3e, il ajoute une autre ligne en dessous et ajoute le 3e po dans la cellule de la colonne N et etc.
Si la cellule est vide, il n'y a rien à faire, et s'il y a qu'un seul numéro de PO, il le laisse tell quelle.
De plus, il doit aussi ajouter avec les pos des autres lignes, la même valeur de la colonne M-O-P et Q de la ligne première où toutes les PO se trouvait au départ.
Jusqu'à maintenant, voici le code mais je n'arrive pas à l'aisser que le premier PO de la série sur la première ligne. De plus, si le numéro commence par "0", il éfface le zéro.
Comment puise corriger la macro s.v.p?
Merci pour votre aide.
Code:
Dim Nom As String, Lib As String, Po As String
Application.ScreenUpdating = False
For n = 4 To Range("N" & Rows.Count).End(xlUp).Row
Nom = Range("N" & n).Value
Lib = Nom
i = InStr(Lib, "-")
While i > 0
If i > 7 Then
If IsNumeric(Mid(Lib, i - 7, 6)) And IsNumeric(Mid(Lib, i + 1, 2)) Then
Po = Mid(Lib, i - 6, 9)
Range("N" & n) = Range("N" & n) & ";" & Po
End If
End If
Lib = Mid(Lib, i + 1)
i = InStr(Lib, "-")
Wend
Range("N" & n) = Mid(Range("N" & n), 2)
Next n
For n = Range("N" & Rows.Count).End(xlUp).Row To 4 Step -1
Range("N" & n) = Replace(Range("N" & n), Replace(Range("N" & n), ";", ", "), "")
x = Split(Range("N" & n), ";")
If UBound(x) > 0 Then
Range("n" & n) = x(UBound(x))
' Range("M" & n) = Replace(Range("M" & n), x(0), "")
For m = UBound(x) - 1 To 0 Step -1
Rows(n).Insert
Range("N" & n) = x(m)
Range("A" & n + 1 & ":M" & n + 1).Copy Destination:=Range("A" & n)
Range("P" & n + 1).Copy Destination:=Range("P" & n)
Next m
End If
Next n