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

nobodyuse

XLDnaute Occasionnel
Re

=>sylvanu
J'ai fini par réussir à l'ouvrir
Et là je viens de cliquer sur: Activer la modification
Donc c'est reparti pour un tour (avant de pouvoir accéder au fichier)

=>Erwan
Tu n'as suivi aucun conseil
Tu as laissé les formats, les couleurs, les bordures.
Il fallait virer tout cela pour alléger le fichier.
Le fichier contient 6 feuilles (base de donnée, Janv2021, Mai2021, Sept2021, Bilan2021 et Janv2022)
je n'ai pas viré les mise en forme afin de voir a quoi ça ressemble a l'origine et ce qui peux merder

C une merguez ce fichier ça me met en rogne !
j'ai lancé ta macro du post #34 ça broute, les ventilos s’affolent mais rien :/ ça freeze et ça plante 🤬 😭
 

Staple1600

XLDnaute Barbatruc
Re

Question au passage
On te donne des infos et conseils sur le VBA
Tu les ignores
Pourquoi donc ?
Exemple
Code:
'Transforme les formules en valeur brutes
    Dim rng As Range
    For Each rng In ActiveSheet.UsedRange
        If rng.HasFormula Then
            rng.Formula = rng.Value
        End If
    Next rng
Je me rappelle t'avoir proposé une simplification.
Or je ne la retrouve pas dans tes essais.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Quand on regarde le post 1, je suppose que chaque fioriture a été faite une par une d'où l'explosion de taille.

@nobodyuse, simple expérience :
Dupliquez votre fichier, lancer cette macro et enregistrer. Quel est la taille du fichier ?
Je supprime couleurs encadrement, et police de base sur toutes les feuilles.

VB:
Sub Nettoie()
    Application.ScreenUpdating = False
    For Each F In Worksheets
        Sheets(F.Name).Activate
        Cells.Borders.LineStyle = xlLineStyleNone
        Cells.Interior.ColorIndex = xlColorIndexNone
        With Selection.Font
            .ColorIndex = xlAutomatic
            .TintAndShade = 0
        End With
        [a1].Select
    Next F
End Sub
 

nobodyuse

XLDnaute Occasionnel
Re

=>sylvanu
J'ai fini par réussir à l'ouvrir
Et là je viens de cliquer sur: Activer la modification
Donc c'est reparti pour un tour (avant de pouvoir accéder au fichier)

=>Erwan
Tu n'as suivi aucun conseil
Tu as laissé les formats, les couleurs, les bordures.
Il fallait virer tout cela pour alléger le fichier.


le revoilà tout moche sans Bordures, Sans mise en forme, sans rien Tout nue, tout moche :eek:
mais du coup il ne pese que 3Mo

Staple pour la macro j'ai juste pris une copie plus vieille sur laquel je n'avais pas du faire la modif
c'est corrigé dans la version light

https://www.cjoint.com/c/KCBvlicO4iU

Oui Sylvanu, vu le truc et ma novicitude j'ai fait des cadres sans utiliser de tableau car je ne savais pas comment intégrer mes menu déroulants pour les sélections,...
c'est pour cela que je cherche des idées pour reprendre a zéro

Maintenant que l'on sais que mon fichier est merdique :(
des idées pour repartir sur de bonne base ?
 

Staple1600

XLDnaute Barbatruc
Re, Bonjour Phil970

Fais comme Phil
Zippes ton classeur avant de le poster et tu pourrais le joindre directement sur le forum comme il vient de le faire

NB: Moi aussi, j'ai ratiboisé ton fichier, mais il plante toujours mon Excel.
PS: Le simple fait de l'enregistrer en *.xlsb l'a fait chez moi passer à 3.5Mo
 

nobodyuse

XLDnaute Occasionnel
Re, Bonjour Phil970

Fais comme Phil
Zippes ton classeur avant de le poster et tu pourrais le joindre directement sur le forum comme il vient de le faire

NB: Moi aussi, j'ai ratiboisé ton fichier, mais il plante toujours mon Excel.
PS: Le simple fait de l'enregistrer en *.xlsb l'a fait chez moi passer à 3.5Mo
Pour une seule feuille en effet ça passe mais pas pour plusieurs, j’avais commencé à faire ça tout à l’heure mais du fait des divers changement que vous me demandez que j’essaie de suivre ...

de toute façon si ça plante chez vous tous !

Avez vous tester avec le fichier du post#49 ?

Du coup on en reviens à la situation initiale ... mon fichier est totalement merdique.
Du coup avez vous des idées pour repartir sur des bonnes bases tout à gardant ce dont j’ai besoin. Voir Post#1 de ma demande initiale !
Car puisque c’est inutilisable seule solution c’est de refaire totalement
Mais pour le coup ça fait 2 jours que je réfléchi je ne sais pas du tout comment m’y prendre d’où ma demande
 

Phil69970

XLDnaute Barbatruc
Re

Une réflexion que feras tu lorsque des 10 "réservées" par lettre alphabétique seront tous utilisé ?
1616882023491.png

Ne sera t'il pas plus judicieux de :
-Les insérer à la demande en partant d'un modèle donc plus besoin d'avoir des dizaines de "réservée" en attente. (10 lignes de gagnées par "réservé" avec leurs formats...)
-Et/ou de faire un fichier par ville ?
Le fichier ne serait il pas plus light par conception ?

@Phil69970
 

Staple1600

XLDnaute Barbatruc
Re

=>Une idée généraliste d'usage basique d'Excel
1) une feuille Base de données
1er ligne : entêtes
1 ligne = 1 enregistement
2) La base est formatée en tableau structurée
3) On pilote les données pour avoir divers états et calculs
a) avec des TCD
b) avec PowerQuery
3) on exporte selon les besoins (par code VBA) des documents créés à la volée en version PDF

=>en version "plus évoluée"
On utilise des Userforms et plus de code VBA
 

nobodyuse

XLDnaute Occasionnel
Re

Une réflexion que feras tu lorsque des 10 "réservées" par lettre alphabétique seront tous utilisé ?
Regarde la pièce jointe 1100272
Ne sera t'il pas plus judicieux de :
-Les insérer à la demande en partant d'un modèle donc plus besoin d'avoir des dizaines de "réservée" en attente. (10 lignes de gagnées par "réservé" avec leurs formats...)
-Et/ou de faire un fichier par ville ?
Le fichier ne serait il pas plus light par conception ?

@Phil69970
Re Phil,
Comme je l’ai expliqué le fichier est prévu pour être utilisé par plusieurs personne dont des utilisateurs bcp plus novice que moi (ça promet)
Du coup j’ai inséré ces plage réservé afin de pouvoir comme tu l’a parfaitement compris pouvoir ajouter des agents.
Le fichier en fin d’année sur la feuille bilan possède une macro qui transforme les résultats de formule en donne brutes pour être réutilisé l’année suivante ce qui ne gênerai donc pas en fin d’année (ou au début de l’année d’après) que j’ajoute (si je suis encore à ce poste) des place au besoins dans le cas où les 10 plages par lettre serai dépassées.
J’avoue que ce n’est pas super
D’où le fait aussi (en dehors du problème de poids) de rechercher d’autres solutions et de vouloir reprendre entièrement le fichier (mais je tourne en rond ne sachant pas comment le monter)

faire un fichier par ville était ma solutions initiale qui avait été rendu, mais ma direction m’a demandé d’intégrer les 3 sites sur un seul fichier étant donné qu’il n’y a qu’une seule personne habilité aux achats.
 

nobodyuse

XLDnaute Occasionnel
Re

=>Une idée généraliste d'usage basique d'Excel
1) une feuille Base de données
1er ligne : entêtes
1 ligne = 1 enregistement
2) La base est formatée en tableau structurée
3) On pilote les données pour avoir divers états et calculs
a) avec des TCD
b) avec PowerQuery
3) on exporte selon les besoins (par code VBA) des documents créés à la volée en version PDF

=>en version "plus évoluée"
On utilise des Userforms et plus de code VBA
Houla tu me perds Staple 😂
Pour rappel je suis novice, pugnace, curieux mais novice quand même 😁

j’avoue avoir regarder a essayer de faire sous la forme 1ligne = 1 personne
Mais du fait de l’enregistrement des articles sous forme de liste déroulante et du nombre d’article possible en commande (plus de 10) cela ferai un très grand nombre de colonnes
Aller de bas en haut et plus intuitif que d’aller de gauche vers la droite en défilement pour un utilisateur de ce fait je n’avais pas trouvé mieux que de faire comme je l’avais fait
C’est pourquoi je fait appel à la communauté pour vos précieux conseils et vos idées
 

Staple1600

XLDnaute Barbatruc
Re

C’est pourquoi je fait appel à la communauté pour vos précieux conseils et vos idées
Bonne initiative ;)
Encore faut-il tenir compte des dits conseils et idées.

Donc je répète, les données sont saisis dans une base de données
Et pour le reste, on utilise des TCD

Et pour finir, un dernier conseil
Essaie de rester fidèle (autant que faire se peut) à un principe (que j'affectionne)
le principe K.I.S.S

Nb: G..gle t'en dira plus ;)
 

nobodyuse

XLDnaute Occasionnel
Re


Bonne initiative ;)
Encore faut-il tenir compte des dits conseils et idées.

Donc je répète, les données sont saisis dans une base de données
Et pour le reste, on utilise des TCD

Et pour finir, un dernier conseil
Essaie de rester fidèle (autant que faire se peut) à un principe (que j'affectionne)
le principe K.I.S.S

Nb: G..gle t'en dira plus ;)
Re Staple

j’essai de suivre les conseils au maximum puisque je suis en phase «d’apprentissage»

mon fichier est justement composé d’une base de donnée mais sans doute pas de la façon dont tu le conçois que je ne comprend pas du coup
Je ne sais pas ce que sont les TCD ni tout ce que tu m’a dit plus haut dans le post #54
Sans exemple concret autour duquel je peux travailler c’est vite du chinois tout cela pour moi (j’essai d’avoir l’esprit logique pour réussir à comprendre la mise en pratique )

je chercherai demain tout cela y compris K.I.S.S il commence à ce faire tard et j’avoue que en plus de me sortir par les yeux, ça m’a démoralisé de me rendre compte que tout le travail fournis que mon fichier et si merdique que ça (et presque inutilisable pojr certains d’entre vous) 😞

après je suis ouvert à toute proposition d’idée avec exemple concret de préférence
Je pense que vous avez saisi pour la plupart mes idées et mes besoins.
Pour le reste je reste entièrement à dispo pour vous répondre du mieux possible

et comme toujours un grand MERCI à tous ! 👌
 

Phil69970

XLDnaute Barbatruc
Re

Ok mais tu peux avoir un onglet par ville dans un seul fichier.
ma direction m’a demandé d’intégrer les 3 sites sur un seul fichier

Donc on peux les ajouter à la demande uniquement quand nécessaire.
j’ajoute (si je suis encore à ce poste) des place au besoins dans le cas où les 10 plages par lettre serai dépassées.
Les insérer à la demande en partant d'un modèle

Par exemple
-1 Feuille les articles (les vêtements ....) (~70 articles dans les fichiers fournit)Combien en réel ?(L’ordre de grandeur)
-1 Feuille salariés (~270 salariés dans les fichiers fournit) Combien en réel par site ? (L’ordre de grandeur)
-Soit une feuille par ville
-Soit une feuille avec les 3 villes
-12 feuilles mensuels ou 4 trimestrielles
-1 feuille Bilan/an

@Phil69970
 
Dernière édition:

Discussions similaires

Réponses
16
Affichages
525

Statistiques des forums

Discussions
312 231
Messages
2 086 438
Membres
103 208
dernier inscrit
Natsu09