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?
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'.
Essaye ça
Sheets("your sheetname").range("A5:X50").Value = ""
Vous pouvez aussi utiliser
ActiveSheet.range
Pas sûr que ce soit plus rapide avec VBA - le moyen le plus rapide de le faire dans le programme Excel normal serait:
Ctrl-G
A1:X50 Enter
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.