web-dev-qa-db-fra.com

VBA pour une valeur claire dans une gamme spécifique de cellules et de cellules protégées contre la formule lavable

J'ai des données comme A1: Z50 mais je veux supprimer uniquement A5: X50 en utilisant VBA (je pense que ce sera beaucoup plus rapide que de faire glisser la cellule entière ou d'utiliser clickA5+shift+clickX50+delete). Comment puis-je faire ceci ?

Et puis, comment verrouiller la cellule pour l'empêcher de se réparer ou de s'effacer?

7
eathapeking

Vous pouvez définir une macro contenant le code suivant:

Sub DeleteA5X50()   
    Range("A5:X50").Select
    Selection.ClearContents
end sub

L'exécution de la macro sélectionnerait la plage A5: x50 sur la feuille de calcul active et effacerait tout le contenu des cellules de cette plage.

Pour laisser vos formules intactes, utilisez plutôt ce qui suit:

Sub DeleteA5X50()   
    Range("A5:X50").Select
    Selection.SpecialCells(xlCellTypeConstants, 23).Select
    Selection.ClearContents
end sub

Cela sélectionnera d'abord la plage globale de cellules dont vous souhaitez effacer le contenu, puis limitera davantage la sélection pour n'inclure que les cellules qui contiennent ce qu'Excel considère comme des "constantes".

Vous pouvez le faire manuellement dans Excel en sélectionnant la plage de cellules, en appuyant sur 'f5' pour afficher la boîte de dialogue 'Aller à' puis en cliquant sur le bouton 'Spécial' et en choisissant l'option 'Constantes' et en cliquant sur 'Ok'.

16
Glenn Stevens

Essaye ça

Sheets("your sheetname").range("A5:X50").Value = ""

Vous pouvez aussi utiliser

ActiveSheet.range
5
Niklas

Pas sûr que ce soit plus rapide avec VBA - le moyen le plus rapide de le faire dans le programme Excel normal serait:

  1. Ctrl-G
  2. A1:X50 Enter
  3. Delete

À moins que vous n'ayez à le faire très souvent, entrer puis déclencher le VBAcode demande plus d'effort.

Et si vous souhaitez uniquement supprimer des formules ou des valeurs, vous pouvez insérer Ctrl-G, Alt-S pour sélectionner Goto Special et sélectionnez ici Formules ou Valeurs.

2
Peter Albert