Bonjour le forum
Je viens vers vous pour trouvez assistance pour le code présent en pièce jointe.
J'ai diminué le nombre de feuilles de mon classeur afin de pouvoir le mettre en pièce jointe.
Mon classeur réel me permet de gérer des stocks voitures, il est constitué de de 109 feuilles: 2 feuilles pour chacun des 54 stocks plus une feuille de synthèse.
Les feuilles Tx donnent l'état des stocks voitures.
Les feuilles mvtTx donnent les mouvements des pièces des stocks voitures.
Dans les feuilles Tx je récupére les données des feuilles mvtTx pour calculer les stocks agés avec le code:
Je répéte ce code pour chacun des 54 stocks voitures
Le code est trés long, de plus le volume des données à traiter fait qu'Excel plante par manque de mémoire
L'ensemble des feuilles mvtTx représente ~25000 lignes
L'ensemble des feuilles Tx représente ~5500 lignes
Est-il possible de modifier ce code pour le rendre plus court et surtout pour éviter qu'Excel plante.
Merci pour votre aide
Daniel
Je viens vers vous pour trouvez assistance pour le code présent en pièce jointe.
J'ai diminué le nombre de feuilles de mon classeur afin de pouvoir le mettre en pièce jointe.
Mon classeur réel me permet de gérer des stocks voitures, il est constitué de de 109 feuilles: 2 feuilles pour chacun des 54 stocks plus une feuille de synthèse.
Les feuilles Tx donnent l'état des stocks voitures.
Les feuilles mvtTx donnent les mouvements des pièces des stocks voitures.
Dans les feuilles Tx je récupére les données des feuilles mvtTx pour calculer les stocks agés avec le code:
Code:
Sheets("T07").Select
With Sheets("T07")
e = Range("A65536").End(xlUp).Row
Application.DisplayAlerts = False
Range("L3:L" & e) = "=IF(COUNTIF(mvtT07!C[-11],RC[-11])=0,""Pas d'entrée"",INDEX(mvtT07!C[-8],MATCH(RC[-11],mvtT07!C[-11],0),1))"
Range("M3:M" & e) = "=IF(COUNTIF(mvtT07!C[-12],RC[-12])=0,""Pas de sortie"",INDEX(mvtT07!C[-8],MATCH(RC[-12],mvtT07!C[-12],0),1))"
Range("N3:N" & e) = "=IF(AND(RC[-2]=db!R2C6,RC[-1]=db!R3C6),RC[-3],"""")"
Application.DisplayAlerts = True
Range("L:L,M:M").Select
Selection.NumberFormat = "m/d/yyyy"
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
End With
Range("M1").NumberFormat = "0"
Range([J3], [N3].End(xlDown)).Copy
Range([J3], [N3].End(xlDown)).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Columns("O:O").Delete
Range("A1").Select
End With
Je répéte ce code pour chacun des 54 stocks voitures
Le code est trés long, de plus le volume des données à traiter fait qu'Excel plante par manque de mémoire
L'ensemble des feuilles mvtTx représente ~25000 lignes
L'ensemble des feuilles Tx représente ~5500 lignes
Est-il possible de modifier ce code pour le rendre plus court et surtout pour éviter qu'Excel plante.
Merci pour votre aide
Daniel