Bonjour à tous sur le forum (je suis nouveau ici)
J'ai actuellement quelques problèmes Excel
Dans une sheet Excel, je crée dynamiquement des listes de validations ainsi :
schemesList est une liste de valeurs (ex "Val1,Val2,Val3" faisant en moyenne 7 éléments
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 With ws.Range(ws.Cells(lRow + 2, currentCol), ws.Cells(lRow + 1 + nbLignesPerLevel, currentCol)).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=schemesList .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "Incorrect Scheme!" .ShowInput = True .ShowError = True End With
Le range fait en moyenne 6 cellules
Cette méthode est appelée environ une centaine de fois (les ranges et les listes étant différents à chaque fois).
Le problème est que une fois les formules de validations crées, l'insertion ou la suppression de ligne deviennent extrémement longues (quasiment 1s). Ceci est inacceptable vu l'utilisation faite de la feuille.
Comment serait-il possible de créer de telles listes de validation sans provoquer utlérieurement ce ralentissement?
Ce problème s'est déjà trouvé dans ce forum: http://www.developpez.net/forums/sho...d.php?t=376156
Toutefois, la solution proposée est d'accélérer la suppression de ligne en le faisant de façon groupé. Pour moi, ce n'est pas applicable.
Au sujet de ces listes, j'ai d'ailleurs un autre problème (beaucoup moins grave pour moi): si la chaine pour la liste est trop grande, cela va causer une exception à l'éxécution:
Automation error
The object invoked has disconnected from its clients.
Ce problème a déjà été évoqué sur ce forum sans réponse: http://www.developpez.net/forums/sho...d.php?t=284336
Merci beaucoup pour votre aide.
Partager