Trier données Excel avec macro + assigner une criticité à ces données

Bonjour à toutes et à tous,

J'aimerais trier des données Excel et leur assigner une criticité.

Je m'explique, toutes les semaines je procède à une extraction Excel d'un logiciel tiers que je colle dans un fichier Excel dans un onglet nommé "nouvelle extraction". Je tri ces données dans l'onglet 1 selon plusieurs critères tels que la zone ou l'état. Ce tri est effectué avec une macro assignée à un bouton dans l'onglet 1 qui me copie colle les données triées de l'onglet "nouvelle extraction" vers l'onglet 1. Jusque-là, pas de problème.

Là où ça se complique c'est lorsque j'assigne une criticité à ces données dans l'onglet 1. Comme je l'ai dit au début de ce message, je procède à une extraction toutes les semaines, je rappuie donc sur mon bouton ou la macro est affectée, ça me tri mes données mais ma criticité disparait (normal car je copie colle la page entière), cela dit je ne vois pas encore le moyen de contourner cela, c'est donc la raison pour laquelle je viens ici en espérant trouver des conseils et solutions.

En vous remerciant,

bonjour,

si je comprend bien, il faut copier et coller une plage limitée, pas toute la feuille. Vous avez un fichier comme exemple ?

3forum.xlsm (17.92 Ko)

Si ça peut me permettre de garder ma criticité assignée à chaque ligne tout en sélectionnant toutes les données de l'onglet extraction, oui

re,

je ne sais pas exactement le but, mais un essai à modifier

Sub Macro9()
     With Sheets("Nouvelle extraction").Range("A1").CurrentRegion     'plage dynamique à filtrer
          .AutoFilter
          .AutoFilter Field:=1
          .AutoFilter Field:=2, Criteria1:="Z1"

          .Copy     'copier plage
          Sheets.Add After:=ActiveSheet     'nouvelle feuille
          ActiveSheet.Name = "XYZ_" & Format(Now, "hhmmss")     'renommer feuille
          ActiveSheet.Paste     'coller

          .Offset(1).Copy     'copier plage sans entête
          Set c = Sheets("onglet 1").Range("A" & Rows.Count).End(xlUp).Offset(1)     'destination
          c.PasteSpecial xlValues
          Set c1 = Sheets("onglet 1").Range("A" & Rows.Count).End(xlUp)     'dernière cellule
          c.Offset(, 3).Resize(c1.Row - c.Row + 1).FormulaR1C1 = "=RANDBETWEEN(1,3)"     'je ne connais pas vos critères, donc des chiffres aleatoires
          With c.Offset(2 - c.Row, 3)     'copier MFC
               .Copy
               .Resize(c1.Row - 1).PasteSpecial xlPasteFormats
          End With
     End With

     'ActiveWorkbook.SaveAs Filename:="https://arcelormittal-my.sharepoint.com/personal/varnierfr_ac_arcelormittal_com/Documents/Documents/Forum.xlsm" _
      '                      , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End Sub

Sur l'onglet "nouvelle extraction" je dépose des données "brutes". Ces données me donnent des infos sur les zone Z1, Z2 et Z3 ainsi que l'état des données, A et C.

La macro que j'avais enregistrée me fait :

- le tri des zones

- le tri des états

Sur l'onglet 1 qui peut correspondre à la Zone 1, j'ai enregistré mes filtres tels que Z1 dans la colonne zone et A,C dans la colonne état. Ainsi, la macro me copie colle tous les Z1 des données avec les états A et C sur l'onglet 1.

Par la suite je vais créer un autre onglet pour Z2, qui fera la même chose que ce qui est évoqué au-dessus (en remplaçant le Z1 par Z2).

Et ainsi de suite pour chaque zone

Sur chaque onglet, je priorise les lignes fraichement copiées de la macro avec une criticité, mais avec mon système, lors d'une nouvelle extraction, la criticité disparait malheureusement. J'essaye donc de trouver un moyen d'implémenter les nouvelles lignes dans mes onglets tout en gardant les anciennes avec leur criticité assignée.

J'espère avoir réussi à vous expliquer (un peu) mieux mon soucis..

En tout cas que je vous remercie de votre considération

re,

macro "Mes_Zones" avec maintenant une ligne supplémentaire vide entre les anciens et nouveaux données (changez ce offset(2) en offset(1) pour supprimer cela) et je ne sais pas comment vous voulez créer votre critère en colonne D. Maintenant, c'est une formule.

2forum.xlsm (33.70 Ko)
Rechercher des sujets similaires à "trier donnees macro assigner criticite"