trouvez solutions pour alléger fichier trop lourd

tinet

XLDnaute Impliqué
bonjour à tous,

j'ai créé un fichier de commandes qui permet d'intégrer le catalogue achats produit et fournisseurs de ma société.
ce fichier sera utilisé par de nombreuses personnes.
le fichier comporte environ une quarantaine onglet.
Une trentaine d'onglets sont réservés aux choix de ses fournisseurs, un onglet par fournisseurs.
à la sélection d'un fournisseur le fichier génère automatiquement les produits qui lui sont rattachés.
Pour information une soixantaine de fournisseurs et 8000 références produits.
Le fichier permet, et mis à jour tous les mois du catalogue avec les prix.
La sélection sur chaque fournisseur la totalité ou pas de ces produits.
L'impression d'un bon de commande, l'inventaire etc. etc.

Le fichier fonctionne très bien, la difficulté rencontrée est la suivante.
Certains ordinateurs ont du mal à digérer la taille du fichier qui représente aujourd'hui 30 MO.

Mes questions et la suivante.
N'est-ce pas trop gros pour Excel.
car j'ai rencontré sur certains ordinateurs un plantage du fichier complet.
Le fichier effectivement est très complexe en informations.

J'ai créé une version allégée du fichier pour pouvoir le partager et le mettre en ligne.
L'objectif trouvé peut-être des solutions dans les formules, afin d'optimiser sa taille.

Dans l'attente de vous lire.
a+:)
 

tinet

XLDnaute Impliqué
Re : trouvez solutions pour alléger fichier trop lourd

Bernard,


j'ai décortiqué ta formule, et j'ai compris comment faire la modification sur le décalage du prix.

Je remets en forme le fichier, et je reviendrai vers toi pour des compléments fonction.

Je te remercie de l'aide que tu m'apportes.

a+
 

CBernardT

XLDnaute Barbatruc
Re : trouvez solutions pour alléger fichier trop lourd

Re,

Nouveau lien pour le fichier modifié au niveau de la colonne Prix.

Cijoint.fr - Service gratuit de dépôt de fichiers


Pour les autres points, compte tenu de la lourdeur des bases de données, il vaut mieux transformer les fonctions Excel en macro VBA.
 
Dernière édition:

tinet

XLDnaute Impliqué
Re : trouvez solutions pour alléger fichier trop lourd

Bonjour Bernard et le forum,

J'ai pratiquement reconstruit mon fichier.
petite demande d'amélioration, quand je choisis un fournisseur à vide la fonction copie la première ligne du catalogue.
existe-t-il une solution pur ajouté d'une fonction pour éviter cela.

a+
 
Dernière édition:

CBernardT

XLDnaute Barbatruc
Re : trouvez solutions pour alléger fichier trop lourd

Bonjour,

Bravo, je vois que tu avances dans ton projet !

Pour éviter l'inconvénient cité, j'ai rajouté une ligne qui permet de sortir de la macro s'il n'y a pas de ligne résultat du filtrage avec le nom du fournisseur :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("F1")) Is Nothing Then
Dim Derlig As Long, Critere As String
' Désactivation de l'affichage
Application.ScreenUpdating = False
' Définition du critère du fournisseur
With Sheets("1")
Critere = .Range("F1").Text
End With
With Sheets("CATALOGUE ACHAT")
.Range("A1:M1").AutoFilter ' Mise en place du filtre automatique
.Range("A1:M1").AutoFilter Field:=12, Criteria1:=Critere ' Filtre
'Effacement des données précédentes
Sheets("1").Range("C17:H865,J17:J865,L17:L865").ClearContents
' Copie des valeurs filtrées
Derlig = .Range("B65536").End(xlUp).Row
If Derlig < 2 Then Exit Sub
.Range("C2:F" & Derlig).Copy
Sheets("1").Range("C17").PasteSpecial Paste:=xlPasteValues
.Range("G2:G" & Derlig).Copy
Sheets("1").Range("H17").PasteSpecial Paste:=xlPasteValues
.Range("I2:I" & Derlig).Copy
Sheets("1").Range("J17").PasteSpecial Paste:=xlPasteValues
.Range("J2:J" & Derlig).Copy
Sheets("1").Range("L17").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
' Suppression du filtre automatique
.Range("A1:M1").AutoFilter
End With
' Affichage de la feuille résultat
With Sheets("1")
.Select
.Range("C13").Select
End With
End If
End Sub

J'espère que cela sera suffisant ?
 

tinet

XLDnaute Impliqué
Re : trouvez solutions pour alléger fichier trop lourd

Re Bernard,

tout semble facile avec toi, merci pour l'aide que tu m'apportes.

je vais te soumettre une nouvelle demande d'amélioration.
Comme tu as pu peut-être le comprendre chaque feuille sera dupliquée en plusieurs exemplaires
A la sélection de chaque fournisseur, celui-ci propose plusieurs lignes de produits.
l'ensemble des produits ne sont pas systématiquement utilisées, pour cela dans la colonne "B" une sélection peut être effectué par un double clique qui fait apparaître O.K.
puis une clé de tri est effectuer pour le faire apparaître que les produits désirés.

jusque-là pas de problème, là où ça se complique c'est quand on fait une intégration du catalogue achats dans le mois
il se peut que certains produits pour certains des fournisseurs disparaissent ou sont ajoutés.

Ce qui automatiquement décalent les produits de la feuille qui ont été sélectionnée.
Pour que la personne puisse retrouver ses produits, avant l'intégration du catalogue une macro
copie références de produits est le produit dans la colonne (M et N)
puis j'intègre le catalogue achats, si il y a un décalage la colonne (M) se met en rouge sur le produit.
Un total de produits est également indiqué sur le classeur (liste)correspondant aux fournisseurs.

Mais pour mieux comprendre je remets les fichiers en ligne avec les fonctions que j'avais trouvées jusqu'à maintenant.
Cijoint.fr - Service gratuit de dépôt de fichiers

pour faire le teste, j'ai sélectionné le premier fournisseur du fichier (aime)
puis j'ai sélectionné différents produits chez le même fournisseur.
exécuté une clé de tri.
Puis a ensuite allé sur l'onglet catalogue achats, est supprimée la ligne (5) par exemple en intégralité.
Puis refaire une selcetion du fournisseur (la aussi il faut trouvé un solution en automatique maintenant, avant avec mes formules j'avais la mise à jour automatiquement)

Et revenir sur la série numéro (1) pour voir le résultat.
Ouf que de discution.....:p


A+
 

tinet

XLDnaute Impliqué
Re : trouvez solutions pour alléger fichier trop lourd

Bernard le forum,

J'ai un petit problème maintenant que je n'avais pas identifié.
Si j'utilise le fournisseur a vide, un filtre se met en place sur le fichier catalogue achats et bloque la macro pour resélectionner un fournisseur.
en rouge ce qui a été modifié.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("F1")) Is Nothing Then
Dim Derlig As Long, Critere As String
' Désactivation de l'affichage
Application.ScreenUpdating = False
' Définition du critère du fournisseur
With Sheets("1")
Critere = .Range("F1").Text
End With
With Sheets("CATALOGUE ACHAT")
.Range("A1:M1").AutoFilter ' Mise en place du filtre automatique
.Range("A1:M1").AutoFilter Field:=12, Criteria1:=Critere ' Filtre
'Effacement des données précédentes
Sheets("1").Range("C17:H865,J17:J865,L17:L865").Cl earContents
' Copie des valeurs filtrées
Derlig = .Range("B65536").End(xlUp).Row
If Derlig < 2 Then Exit Sub
.Range("C2:F" & Derlig).Copy
Sheets("1").Range("C17").PasteSpecial Paste:=xlPasteValues
.Range("G2:G" & Derlig).Copy
Sheets("1").Range("H17").PasteSpecial Paste:=xlPasteValues
.Range("I2:I" & Derlig).Copy
Sheets("1").Range("J17").PasteSpecial Paste:=xlPasteValues
.Range("J2:J" & Derlig).Copy
Sheets("1").Range("L17").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
' Suppression du filtre automatique
.Range("A1:M1").AutoFilter
End With
' Affichage de la feuille résultat
With Sheets("1")
.Select
.Range("C13").Select
End With
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 421
Messages
2 088 269
Membres
103 799
dernier inscrit
ELOTJ