Microsoft 365 Gros problème de ralentissement au lancement d'un inputbox

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite une belle journée :)

Je reviens vers nos ténors car j'ai un grave souci :mad:
Notre fichier de travail à toujours eu quelques ralentissement quand nous lançons un inputbox.
Mais depuis quelques temps, ça devient catastrophique.
Notamment au lancement de l'inputbox de recherche.
C'est devenu quasiment permanent ... 10 à 15 minutes d'attente à chaque lancement et ça toute la journée. Cela nous bloque dans notre travail.

A force de recherches, j'ai pensé qu'il s'agissait d'un souci de mémoire.
Selon mes lectures internet, pensant que la mémoire pourrait être libérée au fur et à mesure, j'ai ajouté à la fin des instructions Set ... :"Set ... = Nothing"
Malheureusement sans succès.

En fait, il semblerait que ce soit l'utilisation du Processeur qui soit en cause car
il passe pendant les blocages à plus de 47% d'utilisation alors que normalement il ne dépasse pas les 5%.

Je joins les éléments suivants :
- l'image info disque qui montre un espace libre de 327 Go,
- l'image info du système,
- l'image de l'état du processeur aux moments des bugs de ralentissement,
- le code de l'UserForm de recherche,
VB:
Sub Recherche_youky()
nom = InputBox("Cherche N° Client :" & Chr(10) & "      - Si pas de n°," & Chr(10) & "            - ou erreur n°," & Chr(10) & "                  Recommencez !", "Recherche")
If nom = "" Then
[a6].Select
Sheets("format-numero").Visible = False
Exit Sub
End If
Sheets("format-numero").Range("h3") = ""
  q = ActiveSheet.Index
  For q = q To ActiveSheet.Index + Sheets.Count - 1
    K = (q - 1) Mod (Sheets.Count) + 1
With Sheets(K).UsedRange
Application.ScreenUpdating = False
Range([g2], Cells(Rows.Count, "h").End(xlUp)).Activate
Set C = .Find(nom, LookAt:=xlPart)   'LookAt:=xlpart dans cellule - LookAt:=xlWhole) 'cellule entière
[a1].Activate
If Not C Is Nothing Then
firstAddress = C.Address
Do
On Error Resume Next
Sheets(K).Select
C.Activate
    Application.ScreenUpdating = True
    ActiveWindow.ScrollRow = Selection.Row
    If ActiveSheet.Name = "CopieAppels" Then
    Selection.RowHeight = 50
    End If

    If ActiveSheet.Name = "SuivisAppels" Then
    If Cells(ActiveCell.Row, 7) = C Or Cells(ActiveCell.Row, 8) = C Then

    Rows("6:6").Copy
    Cells(ActiveCell.Row, 1).Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Selection.RowHeight = 300

    End If
    End If
    Cells(ActiveCell.Row, 1).Select

If ActiveSheet.Name = "SuivisAppels" And Cells(ActiveCell.Row, 7) <> C And Cells(ActiveCell.Row, 8) <> C Then
rep = MsgBox(ActiveSheet.Name & " votre N° : " & C & " est absent ! Continuer la recherche ?", 4 + 32, "Sélection")
Sheets("format-numero").Visible = False
Else
rep = MsgBox(C & " : OK dans " & ActiveSheet.Name & Chr(10) & "" & Chr(10) & "Cellule - ligne :  " & C.Address & Chr(10) & Chr(10) & "" & "Continuer la recherche ?", 4 + 32, "Résultat")
End If
If rep = vbNo Then
Application.ScreenUpdating = False
Sheets("format-numero").Visible = False
Exit Sub
End If
Application.ScreenUpdating = False
Sheets("format-numero").Range [h3] = ""
Sheets("format-numero").Visible = False
If ActiveSheet.Name = "CopisAppels" Then
Sheets("SuivisAppels").Select
End If
Application.ScreenUpdating = True
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> firstAddress
End If
End With
  Next q
MsgBox "Ben NON : y'a pas ou y'a plus !"
Application.ScreenUpdating = False
Sheets("format-numero").Visible = False
End Sub
Profane complet en la matière, je ne sais plus quoi faire.
Auriez-vous des idées, solutions ou pistes vers où me diriger ?

Avec mes remerciements,
Amicalement,
lionel,
 

Pièces jointes

  • infos_disque.jpg
    infos_disque.jpg
    30.6 KB · Affichages: 63
  • infos_systeme.jpg
    infos_systeme.jpg
    105.3 KB · Affichages: 34
  • gestionnaire taches.jpg
    gestionnaire taches.jpg
    127.7 KB · Affichages: 33
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Pour que ce soit plus clair et plus facile de s'y retrouver, j'ai réussi un faire un fichier test qui ne concerne que le souci de recherche.
Je le mets en pièce jointe.
Bonne journée :)
Amicalement,
lionel,
 

Pièces jointes

  • test_recherche.xlsm
    142.3 KB · Affichages: 10
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Bonjour,
En cas, je récapitule le souci … c’est coton !

Pour qu'il soit léger, je n'ai mis que quelques lignes alors que notre fichier de travail en contient plus de 30000.

Je précise que sur mon ordi, ça ne " beugue " pas …
Mais uniquement sur l'ordi de ma collègue Charlotte.

Je remets les caractéristiques de son ordi sont en pièces jointes.
Nous sommes sur la même version : office365

Sur son ordinateur :
- si j'exécute à partir du débogage = ça beugue pas … Incompréhensible pour moi ?

Si je lance la macro en cliquant sur le bouton feuille « SuivisAppels »
Le blocage est à deux niveaux :
1 - la fenêtre de la recherche ne s'affiche pas et ça mouline (souvent jusqu'à 15mn d'attente),
2 - et après affichage, on n'a pas la main pour rentrer l'objet de la recherche (encore jusqu'à 15 mn d'attente),
Les N° à chercher sont dans la feuille « SuivisAppels col « G et H »
lionel,
 

Pièces jointes

  • infos_disque.jpg
    infos_disque.jpg
    30.6 KB · Affichages: 18
  • infos_systeme.jpg
    infos_systeme.jpg
    105.3 KB · Affichages: 17
  • gestionnaire taches.jpg
    gestionnaire taches.jpg
    127.7 KB · Affichages: 18

soan

XLDnaute Barbatruc
Inactif
Rebonjour Lionel,

Juste une piste : ta collègue Charlotte et toi vous utilisez la même version : Office365 ; donc d'après moi, s'il y a un comportement différent d'un PC à l'autre, c'est à cause d'une option d'Excel ; mais laquelle ? peut-être celle-ci : Options avancées, rubrique Général, « Ignorer les autres applications qui utilisent l'échange dynamique de données » ? (mais c'est vraiment à tout hasard, ça n'a peut-être rien à voir) ; d'autre part, pour ce qui est du travail en réseau, je n'y connais rien, donc je ne peux pas t'aider à ce sujet. :confused:

D'un autre côté, il s'agit peut-être tout simplement d'un problème matériel : comme tu es le patron, tu t'es acheté un super PC avec un processeur i7 @ 50 GHz alors que ta secrétaire Charlotte n'a qu'un processeur i5 @ 1,5 GHz.​

soan
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

=>Usine à gaz
Merci d'avoir pris le temps de faire un fichier allégé.
Là, c'est tip, top ;) (j'ai plus mal aux yeux)
Bon, maintenant je passe aux tests.

PS: Merci aussi d'avoir supprimer le code dans ThisWorkbook.

1ère remarque:
Ces lignes sont doublonnées
Code:
    Application.EnableEvents = False
    Application.ScreenUpdating = False

        Application.EnableEvents = False
        Application.ScreenUpdating = False
C'est juste une erreur de copier/coller
Ou c'est pareil dans ton fichier original?
 

Staple1600

XLDnaute Barbatruc
Bonsoir fanch55

Je me posais la même question et je ne comprends la partie du code en rouge
Enrichi (BBcode):
Public Sub BoutonRecherche()
'''Application.EnableEvents = False
'''Application.ScreenUpdating = False
'''Application.Calculation = xlManual
'''Rows("6:6").AutoFilter
'''Range("a7:u" & Range("A" & Rows.Count).End(xlUp).Row).ClearFormats
'''Cells(ActiveCell.Row, 1).Select
'''    With Selection.Interior
'''        .Pattern = xlSolid
'''        .PatternColorIndex = xlAutomatic
'''        .ThemeColor = xlThemeColorDark1
'''        .TintAndShade = 0
'''        .PatternTintAndShade = 0
'''    End With
Dim dl&
Rows("7:" & Rows.Count).ClearFormats
dl = Cells(Rows.Count, "a").End(xlUp).Row
[A7].Resize(dl).RowHeight = 40
[J7].Resize(dl).NumberFormat = "General": [Y7].Resize(dl).NumberFormat = "General"
Sheets("format-numero").Visible = True
Sheets("format-numero").Range("H3") = ""
'        On Error Resume Next
'        With [h3]
'            ActiveSheet.PasteSpecial Format:="Texte", Link:=False, DisplayAsIcon:=False
'        End With
J'ai mis en commentaires les 1ères lignes du code d'origine
Et dessous un début de proposition

Et tout comme fanch55, je me pose la question.
Pourquoi on fait des actions de "formatage" avant de faire une recherche?

NB: Autre souci
Sur la 1ere PJ, il y avait moult procédures évenemnetielles dans les feuilles et notamment dans la feuille SuiviAppels
Ce n'est plus le cas dans la nouvelle PJ.
En conséquence, on ne peut étudier les interactions entre le code de recherche et le code dans les feuilles.
 

fanch55

XLDnaute Barbatruc
D'autant plus que le code ci-dessous est très dépendant de la configuration des feuilles à l'instant où il a été créé:
VB:
q = ActiveSheet.Index
For q = q To ActiveSheet.Index + Sheets.Count - 1

Avoir simplifié le fichier va surement avoir un impact sur le code ...
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir JM, fanch55, le Forum,

Je vous remercie pour vos interventions :)
JM, il est normal que j'essaie de simplifier les études en créant un fichier simplifié et je te remercie de me l'avoir fait remarquer :)

Je vais ce soir (enfin j'espère) grouper vos réponses et y répondre plus tard ou demain matin.
Encore merci à vous :)
lionel,
 

Staple1600

XLDnaute Barbatruc
Re,
=>Usine à gaz
Avant de faire un autre fichier
Tu peux détailler le mode opératoire étape par étape, stp
1) Valeur cherchée ( la cellule pour la recherche est H3 sur la feuille format-numero
2) ....
etc...
 
Dernière édition:

Discussions similaires

Réponses
8
Affichages
481
Réponses
2
Affichages
148

Statistiques des forums

Discussions
312 206
Messages
2 086 203
Membres
103 157
dernier inscrit
youma