Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Effacer des cellules par macro

  • Initiateur de la discussion Initiateur de la discussion herve
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

H

herve

Guest
Bonjour le forum,

Ce matin, j'ai créé une macro par enregistrement pour effacer le contenu de cellules. elle a parfaitement fonctionné pendant que je l'enregistrais.

Cependant, si je la lance par un bouton (RAZ) que j'ai créé sur une feuille, elle me donne :
"erreur d'exécution 1004, la méthode select de la classe range a echoué"

ci dessous le code créé lors de l'enregistrement.

Private Sub raz_Click()
Sheets("Relevés").Select
Range("a2:C44").Select
Selection.ClearContents
Sheets("Général").Select
End Sub


Quelqu'un comprend-il pourquoi cela ne fonctionne pas en automatique??

Merci de vos réponses

@+ Hervé
 
Bonjour Hervé,

étant liée à un bouton, ta macro tournera si tu remplaces Private Sub par Sub en première ligne.

Bonne journée,

Olivier_HTP
 
bonjour, Olivier_HTP

Merci pour ta réponse, mais cela ne fonctionne toujours pas, que le code soit sur la feuille ou dans un module.

J'ai contourné le probleme en incluant ce code sur un bouton dans un USF et là, cela fonctionne...

Merci et bonne journée,

@+ Hervé
 
Bonjour Hervé, Olivier, le Forum.

Hervé, visiblement ton bouton "raz" ne se situe pas sur la feuille "Relevés", et c'est précisément pour ça que ton code ne fonctionne pas.

Si au lieu de :

Private Sub raz_Click()
Sheets("Relevés").Select
Range("a2:C44").Select
Selection.ClearContents
Sheets("Général").Select
End Sub

Mis comme ça, ton Range("a2:C44"), ne fait pas référence au Range("a2:C4") de la feuille "Relevés", mais de la feuille dans laquelle est placé ton bouton "raz" (Private module d'une feuille ) !

Il te faut donc écrire simplement :

Private Sub raz_Click()
Sheets("Relevés").Range("A2:C44").ClearContents
Sheets("Général").Select
End Sub

Ce qui signifie :
1 - je clique sur le bouton "raz" placé sur une feuille X
2 - j'efface la zone "A2:C44" de la feuille "Relevé"
3 - je sélectionne la feuille "Général"
4 - je quitte cette procédure.

Je pense que c'est ce que voulait dire Olivier, ton code aurait marché s'il était placé dans un module autre qu'un module Privat de feuille (c'est d'ailleurs pourquoi il marche depuis un bouton d'un UserForm).

Cordialement.
Didier
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
25
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…