XL pour MAC Refonte complete d'un fichier, besoin d'idées

nobodyuse

XLDnaute Occasionnel
Bonjour à toutes et tous

Après quelques temps de travail sur un fichier de suivi de commande d'articles pour des agents d'une entreprise reparties sur 3 sites différents
je me retrouve avec un fichier final fonctionnel, mais très lourd (26Mo pour les 5 années) ce qui rend mon fichier très lent

Tout d'abord je précise que je suis archi novice !
Je viens donc vers vous les pro du Excel afin de quérir quelques idées pour refaire mon entièrement mon fichier de manière a ce qu'il soit moins lourd et utilisable sur serveur d'entreprise par 3 personnes minimum (1 sur chaque site)

je vous expose donc le projet:

j'ai une base de donnée qui doit contenir les différents articles possible, pour lesquels il y a un prix unitaire, différentes tailles possible,
dans cette base de données il y a également une base de Nom/prénom, chef référent, leur site, et la somme qui leur ai attribué au 1er janvier 2020 (repris des années précédentes) il y a pour l’heure quelques 300 agents environs... Mais comme cela peut évoluer (départ en retraite, embauche, ...) il faut donc que ce fichier soit évolutif facilement
il me faut donc un système qui aille cherche les noms, en fonction du nom son chef, que 'l’on sépare les 3 sites si cela est possible...
il y a 3 commande par année civile (Janvier, Mai et Septembre)
il faut que l'on puisse rentrer leur éléments de commande avec des liste deroulantes (Articles, taille, quantité, Prix Unitaire) que ce soit calculé automatiquement et déduit de leur somme initiale
Évidemment chaque fois la somme est reporté sur la feuille de suivi de commande suivants (3 par année) une feuille de Bilan est ajouté pour la fin d'année et permet de voir le nombre d'articles commandé par agents et les totaux par sites (et total global) une feuille de suivi peux éventuellement être inséré ce qui permettrai d'avoir un archivage de ce qui a été commandé .... (si l'on pouvais même réussir a trier par articles et taille de manière a avoir une forme "d’état de la commande" ce serai top pour voir et suivre d'un coup d'oeil les quantités qu'il y a à commander et en quels tailles)
j'avais ajouté une fonction de Statut de remise a l'agent avec la date automatique (qui permet de suivre un peu savoir ou l'on en est)
Afin de réduire la taille du fichier sur chaque page de bilan j'ai inséré une macro qui permet de transformer le résultat des formules en données brutes et supprimer les feuilles de Janvier, Mai et Sept de l'année qui viens de s’écouler, afin de ne pouvoir garder que la feuille de bilan et reprendre la somme en fin d'année sur la nouvelles feuille de Janvier (Auquel on crédite chaque année la somme de 40€ cumulable d'une année sur l'autre sans jamais dépasser un montant de 120€)


je ne peux pas vous mettre le fichier que j'ai créer (Car trop gros même zippé)
je vous met cela dit des captures d'écrans une de la feuille de Janvier, une de la feuille bilan et une du type de feuille de suivi possible (qui pourrai remplacer la feuille de bilan (à voir)
je sais ce n'est pas top mais c'est vraiment pour donner une idée de ce que j'avais fait jusque la, mais comme cela ne vas pas forcement ....

Merci d'avoir pris le temps de lire jusqu'au bout en espérant avoir réussi a être assez clair
D'avance merci à tous

Feuille actuel de Janvier:
Capture d’écran 2021-03-26 à 17.55.11.png



Feuille actuel de bilan:
Capture d’écran 2021-03-26 à 17.55.36.png




Idée de feuille de suivi a voir:
Capture d’écran 2021-03-26 à 18.00.18.png


Autre tentative de mise en forme:
Capture d’écran 2021-03-26 à 18.15.07.png


D'avance Merci à tous
 
Dernière édition:
Solution
Re

Pour rester Kissien ;)
J'ai simplifié la précédente macro
VB:
Sub Archivage()
Application.ScreenUpdating = False
Dim arrINap As Range, arrIN, arrOUT(), i&, n&, k&, j%
arrINa = Array([D3], [D5], [D7], [D9], [D11], [D13])
Set p = Range("F3:I13"): arrIN = p: k = UBound(arrIN, 1)
For i = 1 To k
For j = 1 To 4
If Trim(arrIN(i, j)) <> vbNullString Then
If Trim(arrIN(i, j)) > 0 Then
n = n + 1
ReDim Preserve arrOUT(1 To 2, 1 To n)
arrOUT(1, n) = arrIN(i, j)
End If
End If
Next j
Next i
Feuil2.Cells(Rows.Count, 1).End(3)(2).Resize(, UBound(arrINa, 1) + 1) = arrINa
Feuil2.Cells(Rows.Count, 7).End(3)(2).Resize(, n) = arrOUT
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour tout le fil,
@nobodyuse,
Je viens de trouver pourquoi mes PJ ne marchent pas.
Vous êtes sur MAC et sur MAC le séparateur est / et non \ comme sur PC.
Donc il faut modifier :
VB:
Chemin = CurDir & "\" & ThisWorkbook.Name
par
Chemin = CurDir & "/" & ThisWorkbook.Name
on le voit sur le chemin affiché sur vos images.
 

nobodyuse

XLDnaute Occasionnel
Re
Je visais le coté léger de la chose
(les données étant stockée en dehors du fichier principal)
C'est sur cette partie du lien que je m'étais arreté.
(en bas de page)

Mais ce n'est qu'une suggestion.
(que je suivrai si j'étais confronté à ta problématique
fichier énorme + multi-utilisateurs)
merci Staple en effet ce sera le cas à terme car sur les postes de travail des utilisateurs ils n’ont accès que à Office365 plus de logiciel stocké sur les ordis...
Et le fichier sera sur serveur pour une utilisation en ligne.
Mais j’aimerai cela dit quand même profiter qu’ici il est de vrai magicien dans Excel pour voir s’il est possible grâce à vous tous de trouver de nouvelles idées pour refondre et refaire ce foutu fichier
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Je suis dépité.
Sur PC ça marche impeccable.
Vraiment désolé de vous avoir fait perdre du temps. 😢
Je pense que ça vient de Curdir :
Sur le Macintosh, la fonction CurDir ne tient pas compte du lecteur spécifié dans l’argument drive et retourne le chemin d’accès du lecteur actuel.
Désolé, ça, je ne connaissais pas.
Ca doit être :
VB:
Chemin = ThisWorkbook.Path & Application.PathSeparator & ThisWorkbook.Name
mais je comprendrais très bien que vous jetiez l'éponge sur cette solution.
 

nobodyuse

XLDnaute Occasionnel
Je suis dépité.
Sur PC ça marche impeccable.
Vraiment désolé de vous avoir fait perdre du temps. 😢
Je pense que ça vient de Curdir :

Désolé, ça, je ne connaissais pas.
Ca doit être :
VB:
Chemin = ThisWorkbook.Path & Application.PathSeparator & ThisWorkbook.Name
mais je comprendrais très bien que vous jetiez l'éponge sur cette solution.

Si si je vais tester c juste que forcement ca rame ou ca plante ce foutu fichier
 

nobodyuse

XLDnaute Occasionnel
Je suis dépité.
Sur PC ça marche impeccable.
Vraiment désolé de vous avoir fait perdre du temps. 😢
Je pense que ça vient de Curdir :

Désolé, ça, je ne connaissais pas.
Ca doit être :
VB:
Chemin = ThisWorkbook.Path & Application.PathSeparator & ThisWorkbook.Name
mais je comprendrais très bien que vous jetiez l'éponge sur cette solution.
Re,

Résultat de la version2 du test:
Capture d’écran 2021-03-27 à 15.51.56.png



pour la version1 ca mouline ca mouline mais rien
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonne nouvelle, ça avance. :) Mauvaise nouvelle, le problème n'est pas lié à une seule page.
Toutes les feuilles de mois pèsent le même poids. Mais pour faire 1.6Mo il doit y avoir du monde.

Pourriez vous exporter une feuille d'un mois dans un fichier ( clic droit sur onglet/Déplacer ou copier ... /Nouveau classeur) supprimer les données sensibles et nous le donner.
On peut regarder si on peut optimiser la mise en forme, ou au moins trouver pourquoi ça pèse si lourd.

Question stupide : Pourquoi allez vous jusqu'en 2025 ? pourquoi ne pas faire un fichier par an avec des liens éventuels entre fichiers ?
 

nobodyuse

XLDnaute Occasionnel
Bonne nouvelle, ça avance. :) Mauvaise nouvelle, le problème n'est pas lié à une seule page.
Toutes les feuilles de mois pèsent le même poids. Mais pour faire 1.6Mo il doit y avoir du monde.

Pourriez vous exporter une feuille d'un mois dans un fichier ( clic droit sur onglet/Déplacer ou copier ... /Nouveau classeur) supprimer les données sensibles et nous le donner.
On peut regarder si on peut optimiser la mise en forme, ou au moins trouver pourquoi ça pèse si lourd.

Question stupide : Pourquoi allez vous jusqu'en 2025 ? pourquoi ne pas faire un fichier par an avec des liens éventuels entre fichiers ?
Encore Merci a vous tous

Je vous fait cela de suite !

alors pourquoi 2025 et pas une par an, tous simplement car l'idée de ce type de fichier est d’être évolutif (pour cela qu'il y a des parties réservé) et car le suivi des sommes de ce faire sur plusieurs années
moi je ne suis que novice en Excel, mais je ne vous raconte pas les autres 😂, il leur faux un truc simple a utiliser, intuitif, et évolutif pour les mouvements de personnel
ne sachant pas mon avenir je voulais couvrir un minimum
 

nobodyuse

XLDnaute Occasionnel
Bonne nouvelle, ça avance. :) Mauvaise nouvelle, le problème n'est pas lié à une seule page.
Toutes les feuilles de mois pèsent le même poids. Mais pour faire 1.6Mo il doit y avoir du monde.

Pourriez vous exporter une feuille d'un mois dans un fichier ( clic droit sur onglet/Déplacer ou copier ... /Nouveau classeur) supprimer les données sensibles et nous le donner.
On peut regarder si on peut optimiser la mise en forme, ou au moins trouver pourquoi ça pèse si lourd.

Question stupide : Pourquoi allez vous jusqu'en 2025 ? pourquoi ne pas faire un fichier par an avec des liens éventuels entre fichiers ?

voila ! réduit au max et compressé car ça passait pas :/
 

nobodyuse

XLDnaute Occasionnel
Désolé, je n'arrive même pas à visualiser Janv2021.
Je ne sais pas ce qui s'est passé mais votre fichier a un souci.
Vous pourriez me renvoyer ce fichier ? Vous pouvez passer par https://www.cjoint.com/ pour les grosses tailles.
Attention votre fichier n'est pas anonyme. Base de données/Listing.
voici le lien Cjoint
effectivement je ne peux pas le rendre complétement anonyme puisque les nom/prénom sont rentré a la main, donc rien ne fonctionnerai et cela n'aurai plus aucun sens pas trop d'autre choix du coup :/
https://www.cjoint.com/c/KCBqYvt6NDU
 

Discussions similaires