XL 2019 excel ne répond pas

biboune

XLDnaute Junior
bonjour,

dans mon dossier joint, chaque fois que je clique sur le bouton "réinitialiser" de la feuille "grilles", çà tourne sans s'arrêter..... et au bout d'un moment (ne répond pas)
ceci depuis que j'ai inséré des images liées : y aurait-il un lien ? et peut-on le corriger?

merci beaucoup
 

Pièces jointes

  • CARTONS2.xlsm
    458.9 KB · Affichages: 26
Solution
Yes,
Just for the fun, j'ai trouvé.
Cela concerne la ligne :
VB:
Set R = wg.Columns("J").Find(J - 1 + Me.[C1], , xlValues, xlWhole)
Si je met la colonne J en standard :
Code:
Set R = wg.Columns("J").Find(1, , xlValues, xlWhole)
Répond 3, puisque 1 est en ligne 3.
Si je suis en Codigo postal :
Code:
Set R = wg.Columns("J").Find(1, , xlValues, xlWhole)
R=Nothing.
"Comme si" la mise en forme Codigo postal renvoyait la chaine de caractère "0001" au lieu du nombre 1.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Biboune,
Votre boucle est extrêmement lente, vous modifiez 36000 cellules dans BefFrm.
J'ai rajouté l'info de progression dans le statusbar, chez moi ça ne se plante pas ... mais ça rame à mort.
VB:
For I = 1 To 9000
    For J = 1 To 4
        k = Int((9 * Rnd) + 1)
        If .cells(I, k).Interior.ColorIndex = 4 Then J = J - 1
        .cells(I, k).Interior.ColorIndex = 4
        Application.StatusBar = "I = " & I & "- J = " & J   ' AFFICHAGE DE I et J'
    Next J
Next I
Pour moi c'est cette macro qui fait que ça rame ce n'est pas lié aux images.
 

Pièces jointes

  • CARTONS2.xlsm
    418.6 KB · Affichages: 14

sylvanu

XLDnaute Barbatruc
Supporter XLD
Effectivement, mais ça prends quand même 23s, c'est ce qui m'a échappé. pour moi c'est déjà très très long. ;)
C'est l'évaluation des formules pour les images qui prends beaucoup de temps.
En PJ j'ai contourné le problème en supprimant les formules des images au début et en les rétablissant à la fin, avec :
VB:
Sub SupprimeFormuleImage()
    Sheets("tirage").Select
    With Sheets("tirage")
        .Shapes("Image 8").Select
        Selection.Formula = ""
        .Shapes("Image 10").Select
        Selection.Formula = ""
        .Shapes("Image 12").Select
        Selection.Formula = ""
    End With
    Sheets("Grilles").Select
End Sub
Sub FormuleImage()
    Sheets("tirage").Select
    With Sheets("tirage")
        .Shapes("Image 8").Select
        Selection.Formula = "Grilles!$P$3:$P$32"
        .Shapes("Image 10").Select
        Selection.Formula = "Grilles!$P$3:$P$32"
        .Shapes("Image 12").Select
        Selection.Formula = "Grilles!$P$3:$P$32"
    End With
    Sheets("Grilles").Select
End Sub
( ça doit être optimisable, je l'ai fait au plus rapide )
Sur mon PC sans image j'obtiens 22.582s, avec les images "modifiées" 23.089s, donc grosso modo la même chose.
 

Pièces jointes

  • CARTONS2 (9).xlsm
    567.4 KB · Affichages: 19

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Sans le cas des images, une méthode de coloriage un peu plus rapide. 6,8 secondes sur ma bécane du boulot.
VB:
Sub BefFrm()
   Dim i%, j%, k%, m&, n&, p&, coul(1 To 9), t, aux, deb
   deb = Timer
   Application.ScreenUpdating = False
   For i = 1 To 9: coul(i) = i: Next
   Randomize
   With Worksheets("Grilles").Range("A1:I9002")
      .ClearContents
      .Interior.ColorIndex = xlNone
      t = Range("A1:i9002")
      For i = 1 To 9002
         For p = 1 To 2: For m = 1 To 9: n = 1 + Int(9 * Rnd): aux = coul(m): coul(m) = coul(n): coul(n) = aux: Next m, p
         For p = 1 To 4: t(i, coul(p)) = 1: Next p
      Next i
      .Range("a1").Resize(UBound(t), UBound(t, 2)) = t
      .Range("A1:i9002").SpecialCells(xlCellTypeConstants).Interior.ColorIndex = 4
      .Range("A1:i9002").ClearContents
   End With
   MsgBox Format(Timer - deb, "\ 0.0 sec.")
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @biboune,

Pour @sylvanu :rolleyes: , à tous,

J'ai fait une macro pour construire 3000 grilles de 3 lignes et colorier les cellules vides en vert.
L'exécution est rapide (env 0,4 sec quand tout se passe bien)

Hélas, trois fois hélas!
Quand j’exécute la macro, la fenêtre suivante apparait:
1626715660431.png


  • si on clique sur Continuer, la macro se termine normalement
  • si on clique sur Débogage, le point d'arrêt est variable, un appui sur <F5> termine la macro normalement
  • si on clique sur Fin, la macro est interrompue mais le résultat est correct ou non
  • si on clique sur Aide, ça ne nous aide pas!

  1. pouvez-vous tester la macro et me dire si le phénomène d’interruption se produit aussi chez vous ?
  2. avez-vous une idée du pourquoi de la chose ?

nota: avant de me lancer dans les paquets de 3 grilles sans doublons (normalement facile à faire avec mon code), je voudrais résoudre ce petit problème.
 

Pièces jointes

  • biboune- RAZ & Grilles- v1.xlsm
    22.3 KB · Affichages: 14
Dernière édition:

Jacky67

XLDnaute Barbatruc
Bonsoir @biboune,

Pour @sylvanu :rolleyes: :

J'ai fait une macro pour construire 3000 grilles de 3 lignes et colorier les cellules vides en vert (MFC).
L'exécution est rapide (env 0,4 sec quand tout se passe bien)

Hélas, trois fois hélas!
Quand j’exécute la macro, la fenêtre suivante apparait:
Regarde la pièce jointe 1111318


  1. Peux-tu tester la macro et me dire si le phénomène d’interruption se produit aussi chez toi ?
  2. As-tu une idée du pourquoi de la chose ?

nota: avant de me lancer dans les paquets de 3 grilles sans doublons (facile à faire avec mon code), je voudrais résoudre ce petit problème.
Bonjour à tous
Le classeur de mapomme (#7)testé sur mon vieux Excel 2007 avec windows10
Exécution sans interruption en 0.4 seconde
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @Jacky67 :),

Merci d'avoir testé. En plus tu m’annonces une bonne nouvelle :D 👌

J'ai trouvé un palliatif sur Google qui fonctionne. Ajouter au début du code l'instruction :
VB:
Application.EnableCancelKey = xlDisabled
Je ne vois pas ce que cela à voir (du moins logiquement) mais ça fonctionne...
je vais essayer de creuser et de m'attaque au problème des paquets de 3 grilles sans doublons.
 

Jacky67

XLDnaute Barbatruc
Bonsoir @Jacky67 :),

Merci d'avoir testé. En plus tu m’annonces une bonne nouvelle :D 👌

J'ai trouvé un palliatif sur Google qui fonctionne. Ajouter au début du code l'instruction :
VB:
Application.EnableCancelKey = xlDisabled
Je ne vois pas ce que cela à voir (du moins logiquement) mais ça fonctionne...
je vais essayer de creuser et de m'attaque au problème des paquets de 3 grilles sans doublons.
Re..
A tout hasard.....
As-tu essayé avec
Code:
Application.EnableEvents = False
au lieu de
VB:
Application.EnableCancelKey = xlDisabled
Juste pour voir
Hé bien le vieux se comporte encore comme un p'titi jeune.
Re..
Il est comme moi, mon vieux xl o_O 👨‍🦯
 
Dernière édition:

biboune

XLDnaute Junior
j'ai chargé le fichier de sylvanu cartons2(9). çà ne me gène pas que çà mette une vingtaine de secondes si çà ne bugge pas.
mais maintenant j'ai ma feuille "édition" qui ne fonctionne plus : quand j'appuie sur le numéro de cartons, toutes les cases deviennent bleues.....je ne peux donc plus éditer des cartons!!!???
je ne sais pas ce que vous avez fait car je ne comprends rien à vos macros, n'étant pas assez calée dans VBA.

je vous joints le fichier d'origine avec ce que je voudrais, mais je ne sais pas si c'est possible!

(tant pis si les numéros tirés ne s'affiche pas sur la feuille "tirage")
 

Pièces jointes

  • CARTONS(4).xlsm
    546.4 KB · Affichages: 8

Discussions similaires

Réponses
36
Affichages
1 K

Statistiques des forums

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