SpecialCells(xlCellTypeFormulas) ne fonctionne pas ?!

Le
wlad69
Bonsoir,

J'utilise l'expression suivante pour sélectionner toutes les cellules
contenant une formule
ActiveSheet.cells.SpecialCells(xlCellTypeFormulas).select
pour pouvoir ensuite les protéger.
Or ceci fonctionne sur environ 500 feuilles réparties dans 90
classeurs, mais il y a une feuille pour laquelle cela ne fonctionne
pas.
Je vous ai mis un exemple http://www.cijoint.fr/cjlink.php?file=cj200803/c=
ijX09LuIs.xls
avec une feuille pour laquelle çà fonctionne (feuille 1) et pour
laquelle çà ne fonctionne pas (feuille 2).
J'ai passé l'après-midi et une partie de la soirée sur ce problème..=
.
Je cale.
Merci de votre aide.

Wlad69
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
eric.vermeulen.artas
Le #5190911
On 18 mar, 23:45, wrote:
Bonsoir,

J'utilise l'expression suivante pour sélectionner toutes les cellules
contenant une formule
ActiveSheet.cells.SpecialCells(xlCellTypeFormulas).select
pour pouvoir ensuite les protéger.
Or ceci fonctionne sur environ 500 feuilles réparties dans 90
classeurs, mais il y a une feuille pour laquelle cela ne fonctionne
pas.
Je vous ai mis un exemplehttp://www.cijoint.fr/cjlink.php?file=cj200803/ cijX09LuIs.xls
avec une feuille pour laquelle çà fonctionne (feuille 1) et pour
laquelle çà ne fonctionne pas (feuille 2).
J'ai passé l'après-midi et une partie de la soirée sur ce problème ...
Je cale.
Merci de votre aide.

Wlad69


Sur la feuille 2 j'ai essayé de réduire le nombre de ligne et de
formules, j'ai alors testé avec
? activesheet.cells.SpecialCells(xlCellTypeFormulas).count
bizarrement cela se met à ne plus fonctionner lorsque je dépasse les
10205 formules (soit environ 1540 lignes dans l'exemple en feuille 2).
J'ai fait un essai avec une classeur vierge, et je n'ai pas rencontré
cette limitation. j'ai mis plus de 60000 formules sur ma feuille et
cela a fonctionné.
Je n'y comprends rien...

Wlad69
Le #5190781
J'ai trouvé une solution de contournement, mais pas le pourquoi du
comment.
Pour contourné le problème j'utilise la macro suivante :

Sub Protege_Formules(Feuille As Worksheet)
Dim i As Integer
On Error Resume Next

With Feuille
.Unprotect MOT_PASSE
.Cells.Locked = False
For i = 6 To 32
.Columns(i).SpecialCells(xlCellTypeFormulas).Locked = True
Next i
' ligne qui ne fonctionne pas !?
'.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
.EnableSelection = xlNoRestrictions
.Protect MOT_PASSE
End With

On Error GoTo 0

End Sub

MOT_PASSE est une constante globale
Public Const MOT_PASSE As String = "tototiti"

Wlad69
Publicité
Poster une réponse
Anonyme