erreur avec SpecialCells TypeBlanks

ctsblv

XLDnaute Nouveau
Bonjour
j'ai créé une macro qui verrouille les cellules non vides et deverrouille les cellules vides de plusieurs plages.
Les plages ont 10 ou 18 lignes et 5 colonnes.
Tant que j'ai une cellule vide dans la plage tout est ok.Si la plage est pleine erreur 1004 il ne trouve pas de cellules vides et laisse donc la plage deverrouillée.Est-il possible de contourner ce problème avec on error go to afin de verrouiller la plage et de relancer la macro sur le range suivant.
EX: si la plage A8:E25 est pleine branchement sur erreur :
Bloquer la plage
reprendre la macro sur Range F8:J25.
etc....
Merci.
Ci dessous une partie de la macro generée sous excel
Code :
Range("A8:E25").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Locked = False
Selection.FormulaHidden = True
Range("F8:J25").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveWindow.SmallScroll Down:=21
Range("F28:J45").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveWindow.SmallScroll Down:=-21
Range("K7:O17").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Locked = False
Selection.FormulaHidden = False
ActiveWindow.SmallScroll Down:=12
Range("K20:O29").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.Locked = False
Selection.FormulaHidden = False
 

Pièces jointes

  • inscriptions.zip
    25.5 KB · Affichages: 29
  • inscriptions.zip
    25.5 KB · Affichages: 39
  • inscriptions.zip
    25.5 KB · Affichages: 31

Pierrot93

XLDnaute Barbatruc
Re : erreur avec SpecialCells TypeBlanks

Bonjour,

essaye comme ceci, s'applique sur la feuille active, sinon la préciser avec l'objet "sheet" :
Code:
On Error Resume Next
With Range("A8:E25,F8:J25,F28:J45,K7:O17,K20:O29").SpecialCells(xlCellTypeBlanks)
    .Locked = False
    .FormulaHidden = True
End With
On Error GoTo 0
A noter en vba rarement utile de selectionner les cellules.

bon après midi
@+
 

ctsblv

XLDnaute Nouveau
Re : erreur avec SpecialCells TypeBlanks

Bonsoir Pierrot93
le code est ok pour 10 plages de ma feuille.A première vue c"est le maximum de plages que supporte With Range.
Après avoir enlevé le resume j'ai l'erreur suivante:
La méthode Range de l'objet'_Global' a echoué Code erreur 1004
j'ai 18 plages au total.Voir le ficher joint.
A partir de la plage Z28:AD45 jusqu'à la fin les cellules vides son verrouillées.
J'ai essayé de rajouter un with Range avec les 8 plages concernées mais j'ai la même erreur sur le second with Range.
Le premier lui passe bien.
La je suis bloqué.Y a t il un moyen de passer cet obstacle?
Merci
 

Pierrot93

XLDnaute Barbatruc
Re : erreur avec SpecialCells TypeBlanks

Bonjour,

à ma connaissance pas de limitation... passe ainsi chez moi, en reprenant toutes les plages de ton fichier, avec ou sans le "on error resume next" (qui est là afin d'éviter l'ereur générée par la méthode "SpecialCells" au cas ou aucune cellule du type "xlCellTypeBlanks" existe dans la plage spécifiée) :

Code:
On Error Resume Next
With Range("A8:AS65,A8:E25,F8:J25,F28:J45,K7:O17,K20:O29,K32:O41,P8:T17," & _
    "U8:Y19,U22:Y33,Z8:AD25,Z28:AD45,Z48:AD65,AE8:AI17,AE20:AI29,AE32:AI41," & _
    "AJ8:AN17,AO8:AS19,AO22:AS33").SpecialCells(xlCellTypeBlanks)
    .Locked = False
    .FormulaHidden = True
End With
On Error GoTo 0

nb : certaines plages se retrouvent dans d'autres... à priori cela ne nuit pas, je te laisse faire le ménage...

bonne journée
@+
 
Dernière édition:

ctsblv

XLDnaute Nouveau
Re : erreur avec SpecialCells TypeBlanks

Bonjour Pierrot93
Tout est ok.
J'avais oublié le & avant le caractère de suite _.
Je n'avais pas les yeux en face des trous.
La macro est devenue bien plus légère que celle générée par excel.
Merci beaucoup.
 

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 761
Membres
103 661
dernier inscrit
fcleves