XL 2013 Effacement problématique avec la fonction INDEX

Dranreb

XLDnaute Barbatruc
Boujour.
Chez moi: opération longue, mais l'effacement à l'air de s'être bien passé.
L'annulation est tout aussi longue mais rétablit les formules.

Édition: Mais guère plus d'une dizaine de secondes quand même pour l'effacement.
Pour le rétablissement c'est plus long, en fait il ne répond plus, là, en ce moment, lors d'une 2nde tentative des 2 opérations.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum, job75, mapomme, Dranreb

@job75
Chez moi, Excel est entré en transe et ne réponds plus. ;)
(Ça fait déjà plus de trois minutes)
(Excel 2013 32 bits - W10 64 bits)

Est-ce que le phénomène se produit avec une plage de cellules moins conséquente?
(Pas pu tester, j'attends qu'Excel me rende la main)
 

job75

XLDnaute Barbatruc
Re,

Merci mapomme, Bernard, JM, Pierre d'avoir testé.

Apparemment les choses se passent mieux pour Pierre sur Excel 2010 et Bernard sur Excel 2016.

Effacement ou validation de n cellules c'est pareil, voyez le fichier joint et cette macro :
Code:
Sub Test_validation()
Dim n%, t
n = Val(InputBox("Nombre de cellules à valider sur G3:WQP3 :", "Test validation"))
If n < 1 Then Exit Sub
t = Timer
[G3].Resize(, n) = "=INDEX($B3:$C8002,1+INT((COLUMNS($G3:G3)-1)/2),1+MOD(COLUMNS($G3:G3)-1,2))"
MsgBox "Durée validation => " & Format(Timer - t, "0.00 \s"), , "Test validation"
End Sub
Avec n = 1000 il faut 16 secondes chez moi.

A+
 

Pièces jointes

  • Fonction INDEX(1).xlsm
    329.7 KB · Affichages: 46

Staple1600

XLDnaute Barbatruc
Re

@pierrejean
Tu n'as pas vu ma question du message#6?

@job75
Je viens de réessayer en ayant qu'Excel d'ouvert (et ton seul classeur)
Excel passe directement en statut: Ne réponds pas
(j'ai appuyé sur SUPPR à 11h47, et toujours pas d'effacement ni de retour d'Excel à la normale
Je ne sais pas si cela joue
Processor: AMD-E 300 (Dual-Core) 1,30 Ghz | 4 Go de RAM

PS:11h56 toujours pas la main dans Excel.

NB: Je vais essayer avec Excel en mode sans échec
 
Dernière édition:

job75

XLDnaute Barbatruc
Re Pierre,

Oui ce n'est pas la 1ère fois que nos ordi se comportent différemment.

Note que pour le fichier "Fonction DECALER" avec n = 16000 cette macro :
Code:
Sub Test_validation()
Dim n%, t
n = Val(InputBox("Nombre de cellules à valider sur G3:WQP3 :", "Test validation"))
If n < 1 Then Exit Sub
t = Timer
[G3].Resize(, n) = "=OFFSET($B3,INT((COLUMNS($G3:G3)-1)/2),MOD(COLUMNS($G3:G3)-1,2))"
MsgBox "Durée validation => " & Format(Timer - t, "0.00 \s"), , "Test validation"
End Sub
s'exécute chez moi en 0,06 seconde.

A+
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re,

Allo la terre? ;)
(cf messages#6 et #9)

EDITION: Résultat du test de la macro* (sur un fichier vierge ou j'ai recopié les données en colonne B:C)
Durée validation
=> 0,20 s

*: macro avec DECALER
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

@pierrejean
Peut-être qu'Excel préfère les puces Intel aux puces AMD alors ;)
Parce que même punition en VBA, Excel ne réponds plus
VB:
Sub Test_VAL_Index()
Dim n%, t
n = Val(InputBox("Nombre de cellules à valider sur G3:WQP3 :", 16000, "Test validation"))
If n < 1 Then Exit Sub
t = Timer
[G3].Resize(, n) = "=INDEX($B3:$C8002,1+INT((COLUMNS($G3:G3)-1)/2),1+MOD(COLUMNS($G3:G3)-1,2))"
Debug.Print "Durée validation => " & Format(Timer - t, "0.00 \s"), , "Test validation"
End Sub
Je vois pas pourquoi mon PC est à la ramasse ?!?

(Avec DECALER, c'est mieux, plus de plantage, mais loin du score de job75, voir mon précédent message)
 

job75

XLDnaute Barbatruc
Re,

Sur un fichier vierge avec juste B3:C8002 remplies les choses se passent à peu près normalement.

En effet avec n = 16000 (le maximum) la macro du post #7 s'exécute chez moi en 6,7 secondes.

Mais si je répète l'opération ça pédale dans la choucroute, je dois sortir par le Gestionnaire des tâches.

A+
 

Staple1600

XLDnaute Barbatruc
Re,

Je sais pas ce qui se passe avec mon Excel
J'ai essayé de nouveau sur un classeur vierge
VB:
Sub Test_VAL_Index()
Dim n%, t
n = Val(InputBox("Nombre de cellules à valider sur G3:WQP3 :", "Test validation",16000))
If n < 1 Then Exit Sub
t = Timer
[G3].Resize(, n) = "=INDEX($B3:$C8002,1+INT((COLUMNS($G3:G3)-1)/2),1+MOD(COLUMNS($G3:G3)-1,2))"
Debug.Print "Durée validation => " & Format(Timer - t, "0.00 \s"), , "Test validation"
End Sub
Résultat
Durée validation => 38,79 s Test validation

Et tout comme job75, je dois tuer le processus Excel si j'essaie d'effacer la plage G3:WQP3
(manuellement ou par macro)
 

Discussions similaires

Haut Bas