Comment trier avec un nombre de lignes différent

bonjour a tous et toutes

je reçois par internet le catalogue.PDF pour mes articles que je copie et colle les lignes qui m’intéresse, le soucis est que la ligne copiée

se mets dans une seule colonne

je voudrais juste en extraire sa référence, l'article, et le prix,mais pour corsé le nombre de colonne est différent en fonction de l'article

je vous joint un aperçu qui correspond au classeur ci- joint

je vais joindre un classeur exemple

31test-pour-tri.xlsm (11.62 Ko)

bonjour

suggestion copier les tableaux, et les coller dans un .txt

ouvrir dans Excel (séparateur = espace) et se servir de la 1ère ligne comme d'un véritable en-tête (mettre sous forme de tableau)

bonsor Jmd

merci de ta réponse,je viens d'enregistrer le classeur en .txt et je ne peu plus l'ouvrir car il est en .pm

mets le .txt ou le vrai pdf dans ton prochain message

Salut Grisan, Jmd,

une proposition VBA.

Ne connaissant pas le répertoire complet et ses éventuelles exceptions, je postule ici que chaque article est précédé de SCH, . que le libellé suit directement en ayant strictement le même format et que le prix à repérer est toujours avec décimale.

Private Sub cmdGO_Click()
'
Dim tTabO, tTabF()
'
iRow = Cells(Rows.Count, 1).End(xlUp).Row
tTabO = Range("A1:A" & iRow)
'
Application.ScreenUpdating = False
'
For x = 1 To UBound(tTabO)
    If Left(tTabO(x, 1), 3) = "SCH" Then
        iIdx = iIdx + 1
        ReDim Preserve tTabF(3, iIdx)
        tTabF(0, iIdx - 1) = tTabO(x, 1)
        tTabF(1, iIdx - 1) = Split(tTabO(x + 1, 1), " - ")(1) & " - " & Split(tTabO(x + 1, 1), " - ")(2)
    End If
    If InStr(tTabO(x, 1), ",") > 0 Then tTabF(2, iIdx - 1) = tTabO(x, 1)
Next
Range("D:F").ClearContents
Range("D1:F" & iIdx) = WorksheetFunction.Transpose(tTabF)
Columns("D:F").AutoFit
'
Application.ScreenUpdating = True
'
End Sub

Avec plaisir!

A+

21test-pour-tri.xlsm (20.43 Ko)

bonsoir a tous

un grand merci Curulis57 pour l'exemple que j'ai donné c'est parfait mais il est vrai que tous ne commence pas par SCH

mais aussi par SCHM, LEG, IBO et bien d'autres WAVETBN

Salut Grisan,

nouvelle proposition!

Pour éviter un scan aléatoire des préfixes (SCF,...), je postule que le libellé est de façon systématique assemblé autour des tirets. A vérifier, bien sûr, ainsi que d'autres présences de tirets comme dans l'avant-dernière colonne du catalogue.

Private Sub cmdGO_Click()
'
Dim tTabO, tTabF()
'
iRow = Cells(Rows.Count, 1).End(xlUp).Row
tTabO = Range("A1:A" & iRow)
'
Application.ScreenUpdating = False
'
For x = 1 To UBound(tTabO)
    If InStr(tTabO(x, 1), "-") > 1 Then
        iIdx = iIdx + 1
        ReDim Preserve tTabF(3, iIdx)
        tTabF(0, iIdx - 1) = tTabO(x - 1, 1)
        sFlag = Trim(Right(tTabO(x, 1), Len(tTabO(x, 1)) - InStr(tTabO(x, 1), "-")))
        tTabF(1, iIdx - 1) = UCase(Left(sFlag, 1)) & Right(sFlag, Len(sFlag) - 1)
    End If
    If InStr(tTabO(x, 1), ",") > 0 Then tTabF(2, iIdx - 1) = tTabO(x, 1)
Next
Range("D:F").ClearContents
Range("D1:F" & iIdx) = WorksheetFunction.Transpose(tTabF)
Columns("D:F").AutoFit
'
Application.ScreenUpdating = True
'
End Sub

A+

20test-pour-tri.xlsm (22.23 Ko)

bonsoir curulis57

merci pour le code et l'exemple en pratique, je vies de fureté dans le catalogue et il n'y a que les articles qui fonctionnent

a l'aide du courant, spot, électroménager, ampoules

mais cela je verrai a les mettre manuellement car ils ne sont pas nombreux

Rechercher des sujets similaires à "comment trier nombre lignes different"