Macro efface cellule

Bonjour,

J'ai cette macro :

Range("A2:H2", Selection.End(xlDown)).Clear

Mais le soucis est que ça efface les colonnes après H2 suivant ou je me place sur le tableau.

Avez-vous une solution ?

Merci bien.

Bonjour,

C'est normal, votre macro clear toutes les cellules entre A2:H2 et votre Selection. Que souhaitez vous supprimer exactement ? (et garder)

Je veux juste effacer le contenu de A2 à H2 et jusqu'en bas du tableau.

Bonjour

Sub effacer()
Worksheets("nom de la feuille").Range("A2:H500").ClearContents
End Sub

'j'ai mis H500 pour exemple tu mets le nombre de ligne de ton tableau

Cordialemnt

Je vais essayer merci.

Worksheets("feuil3").Range("A2:H1000").ClearContents

J'ai mis ça, mais ça ne fonctione pas.

Bonjour

Envoies un exemple de ton fichier avec la macro

ou envoies ta macro

Chez moi la macro fonctionne

Quand je crée un nouveau classeur Excel ça fonctionne, mais avec le mien qui est un fichier professionnel, ça ne veut pas !

Il y a d'autres codes à tester ou pas ?

tu es sur que ta feuille s'appelle feuil3?

Oui certain que c'est la feuille 3.

Celui fonctionne mais pas comme je veux.

Range("A2:H2", Selection.End(xlDown)).Clear

Bonsoir,

Joco7915 --> tu es sur que ta feuille s'appelle feuil3?
D J F A --> Oui certain que c'est la feuille 3.

Ce que Joco7915 vous demande c'est le nom de votre feuille --> Feuille 3 et Feuil3 ce n'est pas la même chose

--> avec feuil3 comme nom de votre onglet dans lequel vous voulez effacer A2 à H1000

Worksheets("feuil3").Range("A2:H1000").ClearContents

Sinon essayez aussi ceci :

ThisWorkbook.Worksheets("feuil3").Range("A2:H1000").ClearContents

Quelques questions :
- Comment vous effacez, via un bouton, une autre macro ?
- Le code est-il placé dans le fichier où vous voulez effacer les données ?
- Si oui le code est placé où dans le fichier ? Module, feuille ?

Crdlt

Oui c'est bien la feuil3

Quelques questions :
- Comment vous effacez, via un bouton, une autre macro ? -->avec un bouton relié à cette macro
- Le code est-il placé dans le fichier où vous voulez effacer les données ? --> oui
- Si oui le code est placé où dans le fichier ? Module, feuille ? --> dans un module

Je dois essayer ceci :

ThisWorkbook.Worksheets("feuil3").Range("A2:H1000").ClearContent

Bonjour,

N'oubliez pas le "s" à ClearContentS.

Pour connaitre le nom de votre feuille si vous ne vous y retrouvez pas, dans l'explorateur VBA :

image

Vous retrouvez le nom des feuilles, celui visible dans l'interface Excel est entre parenthèses, c'est celui à indiquer dans .Worksheets("nomdefeuille"). Vous pouvez aussi utiliser les indexes, qui eux ont l'avantage de ne pas changer si vous renommez les feuilles: .Worksheets(1) (sans " !!!). Un exemple avec le screen ci-joint :

ThisWorkbook.Worksheets(2)

et

ThisWorkbook.Worksheets("Interface")

sont équivalents.

Si j'ai bien compris, dans votre macro initiale vous utilisez la case sélectionnée comme indicateur de dernière ligne. Pour reprendre sur cette idée le code ci-dessous permet d'effacer les cellules situées entre A2:H2 et la ligne de la case sélectionnée, sur la feuille 3 (feuille à vérifier).

With ThisWorkbook.Worksheets(3)
    Range(.Range("A2:H2"), .Cells(Selection.Row, 1)).ClearContents
  End With

Et ce code permet de la faire fonctionner sur n'importe quelle feuille du classeur, en utilisant la feuille ou se trouve la selection actuelle.

With Selection
    Range(.Parent.Range("A2:H2"), .Parent.Cells(.Row, 1)).ClearContents
  End With

Enfin, afin de tester le code, je vous encourage fortement à utiliser .Select au lieu de .ClearContents afin de voir quelles cellules sont affectées et de ne pas perdre vos données.

Merci je vais voir tout ça.

Je viens de me rendre compte que je mettais le numéro de la feuille et non pas son nom.

Mais évidement je veux juste utiliser le numéro sachant que le nom change souvent.

A suivre...

re

Je viens de me rendre compte que je mettais le numéro de la feuille et non pas son nom.

Alors il fallait juste dire la feuille en position 3 et pas feuil3 ou feuille 3

Mais évidement je veux juste utiliser le numéro sachant que le nom change souvent.

Sauf que si vous mettez le numéro, cela suppose que la feuille est toujours en position 3.
Si par hasard ou erreur vous déplacez les onglets... ce sera patatra....

NB : Aussi évitez les "sélection" et "select" dans les codes, cela ne fait que ralentir les exécutions

Bon j'ai essyé avec ça

Sub effacer()

Worksheets(3).Range("A2:H1000").ClearContents

End Sub

L'erreur était sans doute le manque du S

En tout cas, je vous remercie beaucoup pour votre patience et vos réponses :-)

re

L'erreur était sans doute le manque du S

Bah vous n'avez pas lu ce que je vous ai proposé. --> https://forum.excel-pratique.com/s/goto/1207874
Le S était bien présent

NB : n'oubliez pas le Thisworkbook.... cela peut vous éviter des soucis...faites comme vous voulez bien entendu

Si mais c'était un erreur de ma part.

J'ai une autre question, si je veux en même temps et avec la même macro effacer les données de A2 à A500 sur la feuil1

J'ai une autre question, si je veux en même temps et avec la même macro effacer les données de A2 à A500 sur la feuil1

Ajoutez une deuxième ligne dans le code qui fait référence à cette feuil1

Donc Worksheets(1) ou Worksheets("nom de la feuille")
Comme dit précédemment le chiffre 1 correspond à la position de votre feuille dans le fichier

Tout est ok, merci à tous.

Rechercher des sujets similaires à "macro efface"