XL 2019 excel lent à l'ouverture

job75

XLDnaute Barbatruc
Bonjour biboune,

Il est facile de voir que l'ouverture du fichier est lente à cause des très nombreuses formules des colonnes K et L de la feuille "Grilles".

Si l'on efface ces formules l'ouverture est immédiate.

A+
 

biboune

XLDnaute Junior
Bonjour biboune,

Il est facile de voir que l'ouverture du fichier est lente à cause des très nombreuses formules des colonnes K et L de la feuille "Grilles".

Si l'on efface ces formules l'ouverture est immédiate.

A+
ok . mais si je les enlève, la feuille "cartons gagnants" ne s'alimente plus....
Alors, y'a-t-il un code vba qui pourrait effacer ces formules à la fermeture et les remettre après ouverture du fichier? et est--ce la solution?
ou peut-être changer les formules ?
merci
 

biboune

XLDnaute Junior
Hello,
Ci-joint un essai avec une partie seulement de ton classeur (trop lourd)
A +
le fichier que tu me renvoies ne fonctionne plus correctement.

peut-être que je me suis mal exprimée.

la solution est peut-être de simplifier les formules des colonnes j et k de la feuille "grilles" pour que le dossier soit moins lourd?(car les formules de ces colonnes sont bonnes pour faire fonctionner le dossier).
 

job75

XLDnaute Barbatruc
Une solution est d'entrer les formules en colonnes K et L de la feuille "Grilles" uniquement quand on active la feuille "Cartons_gagnants".

Donc effacez les colonnes K et L et placez cette macro dans le code de la feuille "Cartons_gagnants" :
VB:
Private Sub Worksheet_Activate()

With Sheets("Grilles").[K3:K43200]
    .Formula = "=IF(J3="""","""",IF(OR(COUNTIF(P3:P92,A3)+COUNTIF(P3:P92,B3)+COUNTIF(P3:P92,C3)+COUNTIF(P3:P92,D3)" & _
    "+COUNTIF(P3:P92,E3)+COUNTIF(P3:P92,F3)+COUNTIF(P3:P92,G3)+COUNTIF(P3:P92,H3)+COUNTIF(P3:P92,I3)=5,COUNTIF(P3:P92,A1)+COUNTIF(P3:P92,B1)" & _
    "+COUNTIF(P3:P92,C1)+COUNTIF(P3:P92,D1)+COUNTIF(P3:P92,E1)+COUNTIF(P3:P92,F1)+COUNTIF(P3:P92,G1)+COUNTIF(P3:P92,H1)+COUNTIF(P3:P92,I1)=5," & _
    "COUNTIF(P3:P92,A2)+COUNTIF(P3:P92,B2)+COUNTIF(P3:P92,C2)+COUNTIF(P3:P92,D2)+COUNTIF(P3:P92,E2)+COUNTIF(P3:P92,F2)+COUNTIF(P3:P92,G2)" & _
    "+COUNTIF(P3:P92,H2)+COUNTIF(P3:P92,I2)=5),""QUINE"",""""))"
    .Value = .Value 'supprime les formules
End With

With Sheets("Grilles").[L3:L43200]
    .Formula = "=IF(J3="""","""",IF(AND(COUNTIF(P3:P92,A3)+COUNTIF(P3:P92,B3)+COUNTIF(P3:P92,C3)+COUNTIF(P3:P92,D3)+COUNTIF(P3:P92,E3)" & _
    "+COUNTIF(P3:P92,F3)+COUNTIF(P3:P92,G3)+COUNTIF(P3:P92,H3)+COUNTIF(P3:P92,I3)=5,COUNTIF(P3:P92,A1)+COUNTIF(P3:P92,B1)+COUNTIF(P3:P92,C1)" & _
    "+COUNTIF(P3:P92,D1)+COUNTIF(P3:P92,E1)+COUNTIF(P3:P92,F1)+COUNTIF(P3:P92,G1)+COUNTIF(P3:P92,H1)+COUNTIF(P3:P92,I1)=5,COUNTIF(P3:P92,A2)" & _
    "+COUNTIF(P3:P92,B2)+COUNTIF(P3:P92,C2)+COUNTIF(P3:P92,D2)+COUNTIF(P3:P92,E2)+COUNTIF(P3:P92,F2)+COUNTIF(P3:P92,G2)+COUNTIF(P3:P92,H2)" & _
    "+COUNTIF(P3:P92,I2)=5),""CARTON PLEIN"",IF(OR(AND(COUNTIF(P3:P92,A3)+COUNTIF(P3:P92,B3)+COUNTIF(P3:P92,C3)+COUNTIF(P3:P92,D3)+COUNTIF(P3:P92,E3)" & _
    "+COUNTIF(P3:P92,F3)+COUNTIF(P3:P92,G3)+COUNTIF(P3:P92,H3)+COUNTIF(P3:P92,I3)=5,COUNTIF(P3:P92,A1)+COUNTIF(P3:P92,B1)+COUNTIF(P3:P92,C1)" & _
    "+COUNTIF(P3:P92,D1)+COUNTIF(P3:P92,E1)+COUNTIF(P3:P92,F1)+COUNTIF(P3:P92,G1)+COUNTIF(P3:P92,H1)+COUNTIF(P3:P92,I1)=5),AND(COUNTIF(P3:P92,A1)" & _
    "+COUNTIF(P3:P92,B1)+COUNTIF(P3:P92,C1)+COUNTIF(P3:P92,D1)+COUNTIF(P3:P92,E1)+COUNTIF(P3:P92,F1)+COUNTIF(P3:P92,G1)+COUNTIF(P3:P92,H1)" & _
    "+COUNTIF(P3:P92,I1)=5,COUNTIF(P3:P92,A2)+COUNTIF(P3:P92,B2)+COUNTIF(P3:P92,C2)+COUNTIF(P3:P92,D2)+COUNTIF(P3:P92,E2)+COUNTIF(P3:P92,F2)" & _
    "+COUNTIF(P3:P92,G2)+COUNTIF(P3:P92,H2)+COUNTIF(P3:P92,I2)=5),AND(COUNTIF(P3:P92,A3)+COUNTIF(P3:P92,B3)+COUNTIF(P3:P92,C3)+COUNTIF(P3:P92,D3)" & _
    "+COUNTIF(P3:P92,E3)+COUNTIF(P3:P92,F3)+COUNTIF(P3:P92,G3)+COUNTIF(P3:P92,H3)+COUNTIF(P3:P92,I3)=5,COUNTIF(P3:P92,A2)+COUNTIF(P3:P92,B2)" & _
    "+COUNTIF(P3:P92,C2)+COUNTIF(P3:P92,D2)+COUNTIF(P3:P92,E2)+COUNTIF(P3:P92,F2)+COUNTIF(P3:P92,G2)+COUNTIF(P3:P92,H2)+COUNTIF(P3:P92,I2)=5)),""DOUBLE QUINE"","""")))"
    .Value = .Value 'supprime les formules
End With

End Sub
Le fichier déposé sur cjoint.com :

https://cjoint.com/c/KHwqnAkLGhu

Salut Wayki.
 

biboune

XLDnaute Junior
Une solution est d'entrer les formules en colonnes K et L de la feuille "Grilles" uniquement quand on active la feuille "Cartons_gagnants".

Donc effacez les colonnes K et L et placez cette macro dans le code de la feuille "Cartons_gagnants" :
VB:
Private Sub Worksheet_Activate()

With Sheets("Grilles").[K3:K43200]
    .Formula = "=IF(J3="""","""",IF(OR(COUNTIF(P3:P92,A3)+COUNTIF(P3:P92,B3)+COUNTIF(P3:P92,C3)+COUNTIF(P3:P92,D3)" & _
    "+COUNTIF(P3:P92,E3)+COUNTIF(P3:P92,F3)+COUNTIF(P3:P92,G3)+COUNTIF(P3:P92,H3)+COUNTIF(P3:P92,I3)=5,COUNTIF(P3:P92,A1)+COUNTIF(P3:P92,B1)" & _
    "+COUNTIF(P3:P92,C1)+COUNTIF(P3:P92,D1)+COUNTIF(P3:P92,E1)+COUNTIF(P3:P92,F1)+COUNTIF(P3:P92,G1)+COUNTIF(P3:P92,H1)+COUNTIF(P3:P92,I1)=5," & _
    "COUNTIF(P3:P92,A2)+COUNTIF(P3:P92,B2)+COUNTIF(P3:P92,C2)+COUNTIF(P3:P92,D2)+COUNTIF(P3:P92,E2)+COUNTIF(P3:P92,F2)+COUNTIF(P3:P92,G2)" & _
    "+COUNTIF(P3:P92,H2)+COUNTIF(P3:P92,I2)=5),""QUINE"",""""))"
    .Value = .Value 'supprime les formules
End With

With Sheets("Grilles").[L3:L43200]
    .Formula = "=IF(J3="""","""",IF(AND(COUNTIF(P3:P92,A3)+COUNTIF(P3:P92,B3)+COUNTIF(P3:P92,C3)+COUNTIF(P3:P92,D3)+COUNTIF(P3:P92,E3)" & _
    "+COUNTIF(P3:P92,F3)+COUNTIF(P3:P92,G3)+COUNTIF(P3:P92,H3)+COUNTIF(P3:P92,I3)=5,COUNTIF(P3:P92,A1)+COUNTIF(P3:P92,B1)+COUNTIF(P3:P92,C1)" & _
    "+COUNTIF(P3:P92,D1)+COUNTIF(P3:P92,E1)+COUNTIF(P3:P92,F1)+COUNTIF(P3:P92,G1)+COUNTIF(P3:P92,H1)+COUNTIF(P3:P92,I1)=5,COUNTIF(P3:P92,A2)" & _
    "+COUNTIF(P3:P92,B2)+COUNTIF(P3:P92,C2)+COUNTIF(P3:P92,D2)+COUNTIF(P3:P92,E2)+COUNTIF(P3:P92,F2)+COUNTIF(P3:P92,G2)+COUNTIF(P3:P92,H2)" & _
    "+COUNTIF(P3:P92,I2)=5),""CARTON PLEIN"",IF(OR(AND(COUNTIF(P3:P92,A3)+COUNTIF(P3:P92,B3)+COUNTIF(P3:P92,C3)+COUNTIF(P3:P92,D3)+COUNTIF(P3:P92,E3)" & _
    "+COUNTIF(P3:P92,F3)+COUNTIF(P3:P92,G3)+COUNTIF(P3:P92,H3)+COUNTIF(P3:P92,I3)=5,COUNTIF(P3:P92,A1)+COUNTIF(P3:P92,B1)+COUNTIF(P3:P92,C1)" & _
    "+COUNTIF(P3:P92,D1)+COUNTIF(P3:P92,E1)+COUNTIF(P3:P92,F1)+COUNTIF(P3:P92,G1)+COUNTIF(P3:P92,H1)+COUNTIF(P3:P92,I1)=5),AND(COUNTIF(P3:P92,A1)" & _
    "+COUNTIF(P3:P92,B1)+COUNTIF(P3:P92,C1)+COUNTIF(P3:P92,D1)+COUNTIF(P3:P92,E1)+COUNTIF(P3:P92,F1)+COUNTIF(P3:P92,G1)+COUNTIF(P3:P92,H1)" & _
    "+COUNTIF(P3:P92,I1)=5,COUNTIF(P3:P92,A2)+COUNTIF(P3:P92,B2)+COUNTIF(P3:P92,C2)+COUNTIF(P3:P92,D2)+COUNTIF(P3:P92,E2)+COUNTIF(P3:P92,F2)" & _
    "+COUNTIF(P3:P92,G2)+COUNTIF(P3:P92,H2)+COUNTIF(P3:P92,I2)=5),AND(COUNTIF(P3:P92,A3)+COUNTIF(P3:P92,B3)+COUNTIF(P3:P92,C3)+COUNTIF(P3:P92,D3)" & _
    "+COUNTIF(P3:P92,E3)+COUNTIF(P3:P92,F3)+COUNTIF(P3:P92,G3)+COUNTIF(P3:P92,H3)+COUNTIF(P3:P92,I3)=5,COUNTIF(P3:P92,A2)+COUNTIF(P3:P92,B2)" & _
    "+COUNTIF(P3:P92,C2)+COUNTIF(P3:P92,D2)+COUNTIF(P3:P92,E2)+COUNTIF(P3:P92,F2)+COUNTIF(P3:P92,G2)+COUNTIF(P3:P92,H2)+COUNTIF(P3:P92,I2)=5)),""DOUBLE QUINE"","""")))"
    .Value = .Value 'supprime les formules
End With

End Sub
Le fichier déposé sur cjoint.com :

https://cjoint.com/c/KHwqnAkLGhu

Salut Wayki.
ceci ne me convient pas,
car quand j'alimente la feuille "tirage" il faut que je sache s'il y a un gagnant(avec le (ou les) numéro de carton) selon que je choisis "quine", "double quine" ou "carton plein", comme c'était avant : quand il y avait un gagnant le(ou les) numéro de carton s'affichait et c'est à ce moment là que j'allais sur la feuille "cartons gagnants".
 

Wayki

XLDnaute Impliqué
le fichier que tu me renvoies ne fonctionne plus correctement.

peut-être que je me suis mal exprimée.

la solution est peut-être de simplifier les formules des colonnes j et k de la feuille "grilles" pour que le dossier soit moins lourd?(car les formules de ces colonnes sont bonnes pour faire fonctionner le dossier).
OK, mais pourquoi ça convient pas ??
Il n'y a pas de formules, tout passe par macro pour alléger le fichier (on passe de 3mo à meme pas 1)
Quand une ligne est complétée, Quine apparaît à côté du carton concerné.
Quand un 2eme quine apparaît, double quine vient se greffer pour information (le code continue de travailler sur l'occurrence des quines).
Quand 3 quines sont présents, carton plein apparaît (pour info toujours) et le carton vient se copier coller dans cartons gagnants, n'est ce pas ce que vous voulez faire ?
J'ai envoyé qu'un bout de fichier mais il faut simplement rallonger les plages de cellule dans le code sur le vrai fichier.
Si j'ai bien compris il faut que le carton gagnant apparaisse dans l'onglet 1 ?
 

biboune

XLDnaute Junior
OK, mais pourquoi ça convient pas ??
Il n'y a pas de formules, tout passe par macro pour alléger le fichier (on passe de 3mo à meme pas 1)
Quand une ligne est complétée, Quine apparaît à côté du carton concerné.
Quand un 2eme quine apparaît, double quine vient se greffer pour information (le code continue de travailler sur l'occurrence des quines).
Quand 3 quines sont présents, carton plein apparaît (pour info toujours) et le carton vient se copier coller dans cartons gagnants, n'est ce pas ce que vous voulez faire ?
J'ai envoyé qu'un bout de fichier mais il faut simplement rallonger les plages de cellule dans le code sur le vrai fichier.
Si j'ai bien compris il faut que le carton gagnant apparaisse dans l'onglet 1 ?
oui.
je vais essayer de vous faire comprendre comment mon fichier fonctionne :
-quand je clique sur "nouveau tirage" tout se remet à 0
- si je choisis "quine" dans la feuille "tirage" celà veut dire que le n° du (ou des) carton gagnant s'affichera en-dessous de "quine" de la feuille "tirage" (exemple : je double clique sur 4 29 39 52 71 le n° 1 s'inscrit en-dessous de "quine" dans la feuille tirage puisqu'une quine est dans le carton 1) je clique alors sur "voir les cartons gagnants" pour vérifier si la quine est bonne.
je continue la partie à double-quine : je mets "double quine" sur la feuille "tirage" et je continue mon tirage :
35 36 23 45 63 34 60 89 (à ce moment là le n°121 s'affiche en-dessous de "double-quine" puisque le carton 121 à une double quine) je clique alors sur "voir les cartons gagnants" pour vérifier si la double quine est bonne.
si je veux arrêter la partie je clique sur "nouveau tirage" et tout se remet à 0.

je recommence une partie à "quine" ou "double quine" ou carton plein" ou en enchaînant les 3.

je n'arrive pas à faire celà dans le fichier que vous m'avez envoyé.
 

biboune

XLDnaute Junior
Bonsoir biboune, Wayki,

Il y a eu un autre fil depuis :

https://www.excel-downloads.com/threads/changer-formules-en-macro.20059721/#post-20450488

Pas vu les réponses ou pas de suite dans les idées ?

A+
bonjour, job75,
le fichier que tu m'envoie ne fonctionne pas comme avant....
je ne comprends pas "où et quand" rajouter les codes macros pour que mon fichier fonctionne comme expliqué dans le post 10 (c'est à dire comme avant).
excuse-moi encore de t'embéter !...
 

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 223
Membres
103 159
dernier inscrit
FBallea