Macro pour retenir un prix selon la tranche Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
a
abd2010
Membre habitué
Membre habitué
Messages : 62
Inscrit le : 16 novembre 2019

Message par abd2010 » 29 janvier 2020, 10:02

Bonjour ça marche bien et je vous remercie beaucoup.
J'aurai souhaité votre aide si possible sur le sujet "Fusion de lignes "dont vous avez participé, mais au cas échéant merci quand même.
Bonne journée
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 15'008
Appréciations reçues : 884
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 29 janvier 2020, 10:10

Merci pour ce retour.
Pour la fusion, j'ai décliné. Désolé.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
a
abd2010
Membre habitué
Membre habitué
Messages : 62
Inscrit le : 16 novembre 2019

Message par abd2010 » 12 mars 2020, 09:22

Bonjour ,
Je me permets de revenir vers vous car quand je charge beaucoup de lignes (genre 700.000) dans le fichier j'ai un problème de lenteur d'ouverture du fichier (il faut attendre 30mn) et quand ça s'ouvre j'ai ça qui prend du temps: Ralentissement (4 Processeur(s) %)

Merci
Function prix(cel As Range) ' cel étant la quantité réelle
For i = (Asc("J") - 64) To Cells(cel.Row, Columns.Count).End(xlToLeft).Column Step 3
    If Cells(cel.Row, i) > cel Or Cells(cel.Row, i) = "" Then Exit For
    prix = Cells(cel.Row, i + 1)
Next
End Function

Function optimum(cel As Range) ' cel étant la quantité réelle
For i = (Asc("J") - 64) To Cells(cel.Row, Columns.Count).End(xlToLeft).Column Step 3
    If Cells(cel.Row, i + 2) < cel.Offset(0, 2) And Cells(cel.Row, i + 2) <> 0 Then optimum = Cells(cel.Row, i)
Next
optimum = Application.Max(optimum, cel.Value)
End Function


Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 15'008
Appréciations reçues : 884
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 12 mars 2020, 13:52

Bonjour,

2 choses ...
abd2010 a écrit :
12 mars 2020, 09:22
Je me permets de revenir vers vous car quand je charge beaucoup de lignes (genre 700.000) dans le fichier j'ai un problème de lenteur d'ouverture du fichier (il faut attendre 30mn)
Comment s'effectue le chargement des lignes ?
abd2010 a écrit :
12 mars 2020, 09:22
j'ai ça qui prend du temps: Ralentissement (4 Processeur(s) %)
Function prix(cel As Range) ' cel étant la quantité réelle
For i = (Asc("J") - 64) To Cells(cel.Row, Columns.Count).End(xlToLeft).Column Step 3
    If Cells(cel.Row, i) > cel Or Cells(cel.Row, i) = "" Then Exit For
    prix = Cells(cel.Row, i + 1)
Next
End Function

Function optimum(cel As Range) ' cel étant la quantité réelle
For i = (Asc("J") - 64) To Cells(cel.Row, Columns.Count).End(xlToLeft).Column Step 3
    If Cells(cel.Row, i + 2) < cel.Offset(0, 2) And Cells(cel.Row, i + 2) <> 0 Then optimum = Cells(cel.Row, i)
Next
optimum = Application.Max(optimum, cel.Value)
End Function
Dans ce cas, il ne faut pas passer directement par la fonction, mais l'activer seulement une fois les modifications faites. Par contre cela veut dire que ce ne sera plus automatique à chaque changement de valeur.
Cela améliorera peut-être les choses, mais il faudra bien passer par ce calcul !

Je regarde pour te donner une alternative.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
a
abd2010
Membre habitué
Membre habitué
Messages : 62
Inscrit le : 16 novembre 2019

Message par abd2010 » 12 mars 2020, 14:12

Comment s'effectue le chargement des lignes ?

Le chargement de lignes s'effectue en copiant-collant les nouvelles valeurs sur chaque colonne.
Mais je l'avais enregistrer sous format (.xlsm), je viens de constater qu'en l'enregistrant sous le format (.xlsb), ça prend moins de temps pour ne pas dire ça s'ouvre automatiquement.

Merci bien
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 15'008
Appréciations reçues : 884
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 12 mars 2020, 17:58

et donc ? souhaites-tu que je te propose une autre solution ?

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
a
abd2010
Membre habitué
Membre habitué
Messages : 62
Inscrit le : 16 novembre 2019

Message par abd2010 » 12 mars 2020, 18:48

Oui si possible.

Merci
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 15'008
Appréciations reçues : 884
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 13 mars 2020, 05:14

Essaie d'abord de te mettre en calcul manuel avant toute chose.
Quand tout est chargé, fais F9 qui va recalculer tout le classeur.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message