Macro sur fonction tri
Résolu/Fermé
abn279
Messages postés
20
Date d'inscription
lundi 14 juillet 2014
Statut
Membre
Dernière intervention
2 novembre 2020
-
Modifié le 3 nov. 2020 à 05:59
abn279 Messages postés 20 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 2 novembre 2020 - 2 nov. 2020 à 20:18
abn279 Messages postés 20 Date d'inscription lundi 14 juillet 2014 Statut Membre Dernière intervention 2 novembre 2020 - 2 nov. 2020 à 20:18
A voir également:
- Macro sur fonction tri
- Fonction si et - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Trier sur excel - Guide
- Macro word - Guide
- Fonction moyenne excel - Guide
5 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 29 oct. 2020 à 17:41
Modifié le 29 oct. 2020 à 17:41
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
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
2 nov. 2020 à 12:11
2 nov. 2020 à 12:11
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.
abn279
Messages postés
20
Date d'inscription
lundi 14 juillet 2014
Statut
Membre
Dernière intervention
2 novembre 2020
2 nov. 2020 à 20:18
2 nov. 2020 à 20:18
Bonjour Patrice
c'est exactement ce que je voulais. Avec cette macro je pense gagner près 1 heure de temps sur mes rapport. Avec des gens comme vous le monde ne s'en porterait que mieux.
un grand merci !
c'est exactement ce que je voulais. Avec cette macro je pense gagner près 1 heure de temps sur mes rapport. Avec des gens comme vous le monde ne s'en porterait que mieux.
un grand merci !
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
Modifié le 29 oct. 2020 à 09:00
Modifié le 29 oct. 2020 à 09:00
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 ?
abn279
Messages postés
20
Date d'inscription
lundi 14 juillet 2014
Statut
Membre
Dernière intervention
2 novembre 2020
29 oct. 2020 à 12:29
29 oct. 2020 à 12:29
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.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
29 oct. 2020 à 14:35
29 oct. 2020 à 14:35
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.
@+
abn279
Messages postés
20
Date d'inscription
lundi 14 juillet 2014
Statut
Membre
Dernière intervention
2 novembre 2020
29 oct. 2020 à 17:14
29 oct. 2020 à 17:14
Okay michel je comprends bien
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
abn279
Messages postés
20
Date d'inscription
lundi 14 juillet 2014
Statut
Membre
Dernière intervention
2 novembre 2020
29 oct. 2020 à 21:45
29 oct. 2020 à 21:45
bonjour Patrice
Ca marche bien . juste quelques petites réglages sur la mise en forme .Mais c'est pas méchant.
Un grand Merci à toi.
Ca marche bien . juste quelques petites réglages sur la mise en forme .Mais c'est pas méchant.
Un grand Merci à toi.
2 nov. 2020 à 02:05
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/
2 nov. 2020 à 08:38
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) ?
2 nov. 2020 à 12:07
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.