Macro sur fonction tri
Résolu
abn279
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
abn279 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
abn279 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je dois envoyer des rapports quotidiens a différentes sociétés. Ces rapports me prennent énormément de temps en passant par la fonction tri.
Ce sont des donnés sur les conteneurs en stockage sur un Terminal. Il s'agira ici de mettre chaque Société dans un classeur contenant:
Feuille 1 les conteneurs en Sts FCL
Feuille 2 les conteneurs en Sts MTY et
Feuille 3 les conteneurs REEFER si la colonne REEFER TEMP C en remplie.
j'ai essayé un enregistrement en macro mais ca ne marche.
je cherche votre aide pour pouvoir le réaliser.
j'ai joint le fichier ci-dessous pour plus de précision.
https://www.cjoint.com/c/JJDbjic16gu
Je dois envoyer des rapports quotidiens a différentes sociétés. Ces rapports me prennent énormément de temps en passant par la fonction tri.
Ce sont des donnés sur les conteneurs en stockage sur un Terminal. Il s'agira ici de mettre chaque Société dans un classeur contenant:
Feuille 1 les conteneurs en Sts FCL
Feuille 2 les conteneurs en Sts MTY et
Feuille 3 les conteneurs REEFER si la colonne REEFER TEMP C en remplie.
j'ai essayé un enregistrement en macro mais ca ne marche.
je cherche votre aide pour pouvoir le réaliser.
j'ai joint le fichier ci-dessous pour plus de précision.
https://www.cjoint.com/c/JJDbjic16gu
Configuration: Windows / Chrome 86.0.4240.111
A voir également:
- Macro sur fonction tri
- Fonction si et - Guide
- Comment faire un tri personnalisé sur excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Logiciel tri photo - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
5 réponses
Bonjour,
Avec un filtre élaboré et les critères en feuille 2 :
Le fichier : https://mon-partage.fr/f/xAcL6Afx/
EDIT : pour chaque feuille (i.e 3 fois), avant le End With tu peux ajouter .Columns.AutoFit
Avec un filtre élaboré et les critères en feuille 2 :
Option Explicit Sub CreerRapports() Dim wbk As Workbook Dim wsh As Worksheet Dim rng As Range Dim crt As Range Dim dic As Object Dim tbl As Variant Dim ste As Variant Dim nom As String Dim i As Long ' Définir la plage des données Set rng = ThisWorkbook.Worksheets(1).Range("A9").CurrentRegion ' Lister les sociétés (dans dic) Set dic = CreateObject("scripting.dictionary") tbl = rng.Offset(1).Resize(rng.Rows.Count - 1, 1).Value For i = 1 To UBound(tbl): dic(tbl(i, 1)) = "": Next i Erase tbl: tbl = Empty ' Pour chaque société : For Each ste In dic.keys ' - mettre à jour les critères du filtre élaboré ThisWorkbook.Worksheets(2).Range("A2").Value = ste ' - créer le rapport (avec 3 feuilles) Set wbk = Workbooks.Add(xlWBATWorksheet) wbk.Worksheets.Add Count:=2 ' - mettre à jour la feuille FCL Set wsh = wbk.Worksheets(1) With wsh .Name = "Sts FCL" ' -- filter les données à transférer Set crt = ThisWorkbook.Worksheets(2).Range("A1").CurrentRegion rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=crt, Unique:=False ' -- copier les données rng.Copy Destination:=.Range("A1") If rng.Parent.FilterMode Then rng.Parent.ShowAllData End With ' - mettre à jour la feuille MTY Set wsh = wbk.Worksheets(2) With wsh .Name = "STS MTY" ' -- filter les données à transférer Set crt = ThisWorkbook.Worksheets(2).Range("A4").CurrentRegion rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=crt, Unique:=False ' -- copier les données rng.Copy Destination:=.Range("A1") If rng.Parent.FilterMode Then rng.Parent.ShowAllData End With ' - mettre à jour la feuille REEFER Set wsh = wbk.Worksheets(3) With wsh .Name = "REEFER TEMP C" ' -- filter les données à transférer Set crt = ThisWorkbook.Worksheets(2).Range("A7").CurrentRegion rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=crt, Unique:=False ' -- copier les données rng.Copy Destination:=.Range("A1") If rng.Parent.FilterMode Then rng.Parent.ShowAllData End With ' - enregistrer et fermer le rapport nom = ThisWorkbook.Path & "\" & Format(Date, "yyyy-mm-dd") & " Rapport " & ste wbk.SaveAs nom wbk.Close False Next ste End Sub
Le fichier : https://mon-partage.fr/f/xAcL6Afx/
EDIT : pour chaque feuille (i.e 3 fois), avant le End With tu peux ajouter .Columns.AutoFit
'.... If rng.Parent.FilterMode Then rng.Parent.ShowAllData .Columns.AutoFit End With
Re,
Ton fichier avec ma macro.
https://mon-partage.fr/f/NU3K7cMZ/
Il fallait juste modifier les critères (Line au lieu de Société) sur la feuille 2
et établir la liste des sociétés d'après la seconde colonne au lieu de la première.
Ton fichier avec ma macro.
https://mon-partage.fr/f/NU3K7cMZ/
Il fallait juste modifier les critères (Line au lieu de Société) sur la feuille 2
et établir la liste des sociétés d'après la seconde colonne au lieu de la première.
Bonjour
LINE =LIGNE ?
Feuille 3 les conteneurs REEFER si la colonne REEFER TEMP C en remplie.
dans ce cas dans les feuilles FCL et MTY, met on les lignes avec REEFER TEMP ou pas ?
Le classeur cible sera t'il dans le m^me dossier que "report Stock" ?
Pourra t'il y avoir d'autres société que FCL et MTY ?
LINE =LIGNE ?
Feuille 3 les conteneurs REEFER si la colonne REEFER TEMP C en remplie.
dans ce cas dans les feuilles FCL et MTY, met on les lignes avec REEFER TEMP ou pas ?
Le classeur cible sera t'il dans le m^me dossier que "report Stock" ?
Pourra t'il y avoir d'autres société que FCL et MTY ?
Bonjour Michel.
Il faut entendre Line = Société.
Si la colonne Reefer Temp C n'est pas remplie c'est pas nécessaire que les colonnes Reefer Temp C et Last Reefer Temp apparaissent sur les feuilles Fcl et Mty.
Oui le classeur cible peut-être dans le même dossier que Report Stock.
Je rappelle les classeurs sont créés en fonction du nombre de société qu'il y'a dans la Colonne Société(ou Line). Sur ce cas si on doit en avoir 6.
J'espère que j'ai été precis. En tout cas je suis à votre disposition pour plus de clarification.
Il faut entendre Line = Société.
Si la colonne Reefer Temp C n'est pas remplie c'est pas nécessaire que les colonnes Reefer Temp C et Last Reefer Temp apparaissent sur les feuilles Fcl et Mty.
Oui le classeur cible peut-être dans le même dossier que Report Stock.
Je rappelle les classeurs sont créés en fonction du nombre de société qu'il y'a dans la Colonne Société(ou Line). Sur ce cas si on doit en avoir 6.
J'espère que j'ai été precis. En tout cas je suis à votre disposition pour plus de clarification.
Je m'absente une ou toute partie de l'après-midi, car à partir de demain (France) je vais me retrouver confiner avec des conditions de sortie restreintes...
Si personne d'autre n'est intervenu, je reprendrais ta demande demain.
@+
Si personne d'autre n'est intervenu, je reprendrais ta demande demain.
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je croyais pouvoir le faire avec un petit réglage sur la mise en forme. Mais depuis je n'y arrive pas. A chaque fois on me signale des erreurs de syntaxes. J'ai joint le fichier original sur lequel je travaille car sur le premier j'avais réduit les colonnes.
Merci d'avance .
https://mon-partage.fr/f/2V2hTSV9/
Est-ce que tu travailles avec plusieurs fichiers sources ayant des structures différentes ?
Faut-t'il mettre un En-tête dans les fichiers des sociétés (nom de la société et date) ?
Non je ne travaille pas avec plusieurs fichiers sources. C'est l'unique structure sur laquelle je travaille pour envoyer mes rapports.
Oui car L'En-tête du fichier cible doit être le même que celui qu fichier source .
A votre disposition pour plus de clarification.