Ranger deux colonnes ous excel

fredmam -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un petit problème. J'ai deux tableau avec des colonnes identiques qui contiennent des articles et des prix.
l'un date de l'année dernière et l'autre de cette année.

J'aimerai les trier pour les mettre cote a cote sur la même feuille et ainsi pouvoir voir les nouveau articles ainsi que ceux qui n'existent plus (tout ca a la fin du document).

J'ai plus de 4000 références et je me vois mal tout faire a la main.

exemple, note : tout est sur la même feuille :

article famille quantité article famille quantité
bougie A 5 artichaud A 2
allumette A 4 allumette A 1
lunette B 2 cuillère B 2
lunette B 2

voila ce que j'ai avec 4000 ref.
J'aimerai avoir ceci :

article famille quantité article famille quantité
allumette A 4 allumette A 1
lunette B 2 lunette B 2
bougie A 5 artichaud B 2

Avec en fin de liste les nouveaux et les anciens articles (voir si possible mettre les nouveaux ou les anciens en couleur et en faisant un tri par ordre alphabétique.

Merci pour vos conseils, peut être que j'en demande beaucoup.

Merci encore.
Configuration: Windows XP
Firefox 3.0.1

6 réponses

  1. LePierre Messages postés 249 Statut Membre 338
     
    bonjour

    essaye déjà de trier dans l'ordre croissant tes deux tableaux à partir de la colonne "article".
    ensuite colle les données d'une année à côté des données de l'année suivante
    insère des cellules vides entre les lignes de l'une ou l'autre série de données pour rétablir la ligne de comparaison.
    (ceci est faisable manuellement à condition de ne pas avoir trop de nouvelles données)

    à plus
    0
  2. fredmam
     
    Salut,

    C'est ce que je voudrais essayer de ne pas faire, j'ai pas mal de changements d'articles.

    En fait j'ai déjà fais mon tri croissant mais sur 4000 références je vais y passer la nuit.

    Merci pour vos réponses.
    0
    1. LePierre Messages postés 249 Statut Membre 338
       
      bonsoir

      essaye ce petit programme : https://www.cjoint.com/?jDuIcZej1r
      il devrait pouvoir te dépanner.

      Tu colles :
      - les données du fichier1 dans les colonnes A à C à partir de la ligne 10
      - les données du fichier2 dans les colonnes D à F à partir de la ligne 10
      ensuite tu tries chaque famille de données dans l'ordre croissant des articles et tu appuies sur "Comparer"

      Ces tris pourraient bien sûr être automatisés si cela te conviens

      à plus
      0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour fredmam, LePierre,

    Si j'ai compris ta question, je te propose sur ton classeur de trier :
    - tes 3 premières colonnes sur code article
    - tes 3 colonnes D,E,F sur code article
    puis d'insérer et lancer cette macro (mode d'emploi) :
    Public Sub anc_nouv()
    Dim lig As Long
    Application.ScreenUpdating = False
    For lig = 2 To UsedRange.Rows.Count
        If Cells(lig, 1).Value > Cells(lig, 4).Value Then
            Cells(lig, 1).Resize(1, 3).Insert Shift:=xlDown
        ElseIf Cells(lig, 1).Value < Cells(lig, 4).Value Then
            Cells(lig, 4).Resize(1, 3).Insert Shift:=xlDown
        End If
    Next lig
    Cells.Sort Key1:=Range("D2"), Order1:=xlAscending, Key2:=Range("A2") _
            , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
            False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
    Application.ScreenUpdating = True
    End Sub
    

    Les anciens articles non reconduits sont en fin, les nouveaux sont insérés avec un vide aux 3 premières colonnes.
    0
    1. LePierre Messages postés 249 Statut Membre 338
       
      bonjour gbinform et fredmam

      belle réalisation !
      j'ai juste modifié la ligne
      For lig = 2 To ActiveSheet.UsedRange.Rows.Count
      en ajoutant "ActiveSheet." car j'avais un message d'erreur
      à plus
      0
      1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744 > LePierre Messages postés 249 Statut Membre
         
        bonjour LePierre,

        Merci du message et effectivement cela dépend de l'emplacement de la macro :

        - si tu mets la macro dans la feuille cela fonctionne car cela s'adresse à la feuille concernée.

        - si tu la mets dans un module, il faut qualifier la feuille concernée sinon il y a ambiguïté pour excel.

        amicalement
        0
  4. fredmam
     
    En tout cas merci pour tout.

    Malheureusement j'ai tout fait a la main et ca m'a pris plus de 4 heures.

    Par contre je garde la macro précieusement pour l'année prochaine.

    Super boulot, merci encore.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fredmam
     
    Bonjour,

    Je remonte le post car suite a formattage independant de ma volonté j'ai perdu le fichier de macro et quand je copie la macro ecrite j'ai un message d'erreur sur DataOption1 "argument nomme introuvable) erreur de compilation ??

    Merci par avance pour votre aide précieuse.
    0
  7. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Le paramètre xlSortNormal s'écrit la lettre L minuscule pas le chiffre 1

    Vérifies que tu as bien ce code.
    0