Macro Excel

Fermé
Aussie - 26 juin 2008 à 04:02
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 26 juin 2008 à 07:57
Bonjour,

J'ai cree sur Excel une grande feuille de donnees (20 colonnes et 31 lignes) comprenant des lettres et des numeros. Je souhaiterais a l'aide d'une macro tout effacer d'un seul clic et si possible creer une copie de cette feuille avant de l'effacer. de cette facon, j'aurais une sauvegarde de la base de donnees et je pourrais egalement reutiliser cette feuille.
j'aurai une feuille par mois, j'aimerais donc que la copie soit nommee par ce mois (et l'annee).

J'ai commence a ecrire en VBA cette macro, mais c'est tres fastidieux car je dois noter toutes les cellules une par une avec la formule :
Range("cellule").Select
ActiveCell.FormulaR1C1 = ""

Je dois surement pouvoir selectionner directement une colonne entiere, mais je ne sais pas quelle est la formule...

Je ne suis pas un specialiste du VBA, c'est meme l'une des premieres fois que je me lance! donc merci par avance a toutes les personnes qui pourront m'eclairer.

5 réponses

BloodyAngel Messages postés 1479 Date d'inscription mardi 21 juin 2005 Statut Contributeur Dernière intervention 21 juin 2018 401
26 juin 2008 à 05:30
Hello
si tu veux effacer TOUTES les cellules de ta feuille, tu peux faire : ActiveSheet.Cells.ClearContents
Ou Worksheets(x).Cells.ClearContents si la feuille active n'est pas celle que tu veux effacer (où x est le numéro de la feuille où tu veux effacer).
Pour sélectionner une colonne entière : Columns(x) où x est le NUMERO (pas la lettre) de la colonne.

J'espère que ça marchera pour toi.
Tchuss
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 193
26 juin 2008 à 05:31
Bonjour,
pour effacer c'est pas difficile...
Range("A1:T31")..Select
Selection.ClearContents
Pour copier ta feuille emploi l'enrégistreur de macro.
>> Outils >> Macro >> Nouvelle macro >> dans la fenêtre tu laisse le nom par défaut et tu fait OK
ensuite tu fait manuellement copier la feuille , changer sont nom.
Quand fini
>> Outils >> Macro >> Arrété l'enrégistrement.
Ta macro serra alors sur un module VBA.
A+
0
BloodyAngel, je ne veux pas effacer TOUTES mes cellules mais seulement une plage bien determinee. La solution de lermite222 correspond donc davantage a ce que je cherchais. mais je te remercie malgre tout car je galerais avec ces les colonnes ou je ne comprenais pas l'histoire du "x". merci beaucoup!

lermite222, ta proposition fonctionne c'est tout a fait ce que je voulais! par contre, je n'ai pas tout saisi pour la copie de ma feuille. j'ai fait ce que tu m'as dit, sauf changer le nom car je ne vois pas tres bien comment faire. j'obtiens bien une copie dans un nouveau classeur, mais il faut que j'enregistre et que je change le nom apres de moi-meme?

est-ce que je peux faire une copie de ma feuille et faire aussi en meme temps, avec le meme clic, une remise a zero comme vu precedement?

je ne suis pas un pro de VBA, j'apprends petit a petit...
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 193
26 juin 2008 à 07:31
Non, tu a arrété ta macro trop tôt, tu doit TOUT faire en manuel, effacé ta plage, faire une copie changer le nom, sauver etc... tout, tout.
Quand tu fait la copie, fait gaffe a l'emplacement, en premier ou en dernier..
Ensuite tu montre ta macro je l'adapterais pour qu'elle soit autonome.
Mais il faudrait que les noms de tes feuilles aient une suite logique, par ex : Fact 01, Fac 02, Fac 03
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 193
26 juin 2008 à 07:57
pour changer le nom de la feuille tu double clic sur le nom de l'onglet et tu édite le nom
0