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

Effacement de données dans un classeur

  • Initiateur de la discussion Initiateur de la discussion br44
  • 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 !

br44

XLDnaute Impliqué
Bonjour à toutes et à tous ,

Ce petit message pour savoir si il est possible d'efface toutes les feuilles d'un classeur en une seul fois .


J'ai un classeur de douzes feuilles nomées de "JANVIER" à"DECEMBRE" chaque feuille est remplies d'environ 12000 lignes sur 7 colonnes de"A à G" .

quelle serais la boucle faire pour effacer ces plages. j'ai retrouvée une macro sur le forum mais j'ai une erreure de "type 13 " quand elle s'èxècute .

Voici la macro consernée :

Sub ma feuille
Dim mafeuille As Worksheet

For each mafeuille in Worksheets

Sheets(mafeuille).range ("A1:G 12000").Clearcontent

Excit for

End sub

Espérant avoire ètè claire dans ma demande je vous remercie par avance et voius dit à plus sur se fil . Amicalement Br 44
 
Re : Effacement de données dans un classeur

Bonjour brr44,

Je pense qu'il y avait de la friture sur la ligne lorsqu'on t'a dicté le code par téléphone... 🙂
Code:
Sub [COLOR=red]videmesfeuilles[/COLOR] ()
Dim mafeuille As Worksheet 

For each mafeuille in [COLOR=red]thisworkbook.[/COLOR]Worksheets 

[COLOR=red]mafeuille[/COLOR].range("A1:G12000").Clearcontent[COLOR=red]s[/COLOR] 

[COLOR=red]Next[/COLOR] 

End sub
 
Re : Effacement de données dans un classeur

Re : rebonjour à tous ,


juste une petite question dans la macro je voie la variable mes pas de déclaration du style :

mafeuille = où Set mafeuille =


ma question : Faut-il la rajouter ? et commant je formule ? car je suppose qu'il faut mettre le nom de la première et de la dernière feuille ?


Désoler de poser des question si basic mais j'avoue que je dèbute à ce niveau . Merçi d'avance ,à plus . Amicelement br44
 
Re : Effacement de données dans un classeur

RE/ Bonjour à tous ,

Je viens faire un petit point sur mon problème afin de vous tenir au courant de mes progrets .

J'ai une bonne nouvelle j'ai résolue une bonne partie du problème grace à la
macro suivante :

With Wb1
ActiveWorkbook.SaveCopyAs "C:\RAPID\SAUVEGARDE\ARCHIVE FACTURE\Facture2008.XLS"
End With

'Efface toute les feuilles du classeur "A.Xls"
'Déclare la varible Mafeuille
Dim Mafeuille As Worksheet

'Définit la variable Mafeuille
Set Mafeuille = Wb1.Sheets(12)
'boucle sur l'ensemble du classeur "A.xls"
For Each Mafeuille In Worksheets
'Efface les feuilles du Classeur "A.xls"
Mafeuille.Range("A1:G977").Clear
'Sort de boucle Next
End If

'Enregistre les données du classeur "A.XLS"
Wb1.Save
'Fermeture du classeur "A.xls"
Wb1.Close


Il ne me reste plus qu'à trouver la bonne formule pour la condition suivante :

Que le macro ne s'enclanche que sur la 12 feuille du classeur "A.xls " c'est à dire : Au mois de "DECEMBRE"

Si quelqu'un peut m'aider à résoudre se petit soussi se serais géniale . je vous en remercies toutes et tous par avance . Amicalement BR44
 
Re : Effacement de données dans un classeur

Bonjour br44

regarde les codes ci dessous

1er : teste si le mois en cours est le mois de décembre.

Code:
If Month(Date) = 12 Then MsgBox "Nous sommes en décembre !!!"

2 ème : pour récupérer le nom du mois (en majuscule) dans une variable :

Code:
Dim x As String
x = UCase(MonthName(Month(Date)))

A adapter à ton projet, si cela peut t'aider...

bonne journée
@+
 
Dernière édition:
Re : Effacement de données dans un classeur

Re: Bonjour Pierrot93,le forum

Un grand merçi pour tes rèponses qui je crois vons m'aider à résoudre mon problème .

je voulais juste savoire si il ètait possible de dèclancher une macro à partir du nom d'une feuille de calcule ?

Donc si j'ai bien compris il faut d'abord que je teste l'ensemble du classseur pour trouver la feuille consernée et aprés placer la macro (voire message précédents) .


Si tu pouvait me donner un exemple se serais sympas et si tu à un peut de temps biensure .


En te remerciant par avance je te dis à plus et te tien au courant pour le teste . Amicalement Br44
 
Re : Effacement de données dans un classeur

Re br

comprends pas trop ce que tu veux dire par :

je voulais juste savoire si il ètait possible de dèclancher une macro à partir du nom d'une feuille de calcule ?

tu veux dire à l'activation d'une feuille ? que veux tu faire exactement,peux tu être un peu plus précis.

bonne fin d'après midi
@+
 
Re : Effacement de données dans un classeur

Re: Rebonjour à tous ,Pierrot93


Bon je viens de tester ta seconde proposition ,le seul souci ses que ma macro fonctionne sans condition ,mais des que j'essaye dans mettre une la macro ne fonctionne plus et il n'y a aucun beug de signaler par le vba .


Alors j'avoue que ne comprend pas se qui se passe ?


Cela me fait poser la question suivantes : comment puis-je faire déclancher ma macro qu'une seule fois dans l'année ? et là je suis perdue .😕😕


Te remerciant de ton aide je te dis à plus sur se fil et à bientôt . Amicalement Br44
 
Re : Effacement de données dans un classeur

Re

ta macro se trouve où ? dans un module standard ? c'est une macro événementielle sur la feuille ? le classeur ?

Essaye peut être en testant l'année que tu auras mis dans une cellule cachée... Si égal à l'année en cours tu executes ton code, et tu incrémentes d'un la cellule, dans le cas contraire tu ne fais rien, un peu comme ceci :

Code:
If Range("A65536").Value = Year(Date) Then
'ton code
    Range("A65536").Value = Range("A65536").Value + 1
End If

De ce fait le code ne pourra se déclencher que l'année suivante...

une idée d'après ma compréhension...

A voir si cela peut te convenir, mais il nous manque sans doute des détails...

bonne soirée
@+
 
Re : Effacement de données dans un classeur

Re: bonjour Pierrot93, le forum


Milles excuses de ne pas avoire rèpondu tout de suite à ton dernier message ,mais je l'ais vue aprés avoire rèpondu à celui des testes .


En se qui conserne la rèponse à ta question voilà :


Je voudrais sauvegarder un classeur nomé "A.xls" qui contient toutes les facutres de l'année en court ,puis renomer la copie "Facture2008.Xls" et enfin effacer le classeur source pour qu'il soit prés pour l'année suivante .

Il faudrait donc que cette copie se déclanche a la fin de l'année en court à partir du bouton "d'impression " qui lui est situé dans un classeur nomé "F.xls " . C'est à cette endrois où se trouve mon programme .

Le but final est de pouvoir consulter les factures du mois en cour, celle de l'année ,mais aussi celle des années précedantes .


A noter que je serais pas l'utilisateur final est afin d'éviter d'oublier de faire cette manip toutes les ans manuellement , j'ai donc pensé à automatiser cette fonction .



Pour terminer : si tu veux dire que le faite de vouloire faire déclancher ma macro aprés l'impression des factures du mois de dècembre est une macro èvènementielle alors je te répond oui .


Je joint un fichier contant les infos + le classeur "A.xls" réduit pour cause de poids .

A Noter : La partie création du nouveau fichier est faite ainssi que la partie effacement du classeur source (Voir la macro située dans les premier message de se post) il ne manque plus que la partie èvenementielle à réaliser .

Je te prie de bien vouloir m'excuser pour ne pas avoir mis mon fichier d'info plustôt mais je croyait l'avoir dèja joint .

En te remerciant par avance pour ton aide je te dis à bientôt sur se fil . Br44
 

Pièces jointes

Re : Effacement de données dans un classeur

Bonsoir br44

vois pas trop, comment tester que la macro doit se déclencher ? sur une date, mais laquelle ??? peut être ce genre de test :

Code:
If Date = #6/18/2008# Then 
'ton code
End if

as tu étudié le fait de tester l'année dans une cellule cachée ?

Perso, pas d'autres idées à te proposer, à mon sens le mieux serait la cellule cachée... Maintenant à toi de voir...

bonne soirée
@+
 
Re : Effacement de données dans un classeur

Re: Rebonjour Pierrot93, le forum


Merçi pour ton dernier message .


En le lisant j'ai peut-être une piste : je peux me basé sur la cellule qui contient le Mois puisque cette cellule me permet d'affecter ma copie à la feuille portant le même le nom .


Mais il faut dans ce cas la que je recherche la dernière cellule de la colonne "C" située dans la feuille dernière feuille du classeur "A.xls " contenant le mois de "dècembre"

Ce qui donnerait un truc du genre : 'Range ("C3"). Value étant la première cellule contant le mois

If Wb1.Sheets(12).Range("C3").Value ="Décembre" then
Ma macro
End If
End Sub

pour base de dèpart .

Si tu peut m'aider pour la boucle et me dire si je suis sur la bonne voie se serais sympas ,de mon côtè je teste avec la première cellule et je te tient au courant .

Te remerciant par avance je te dis à plus Et merçi encore . Br44
 
Re : Effacement de données dans un classeur

Re: Bonjour Pierrot93,le forum ,


Merçi pour cette rèponse encouragante ,et j'ai bien noter pour la cellule fusionner .

Ces pourqoui je vais me basé sur le mois de la "Facture" qui lui est une cellelule simple du coup sera la colonne "E" et plus la colonne "C" .


Si tu pouvais m'aider a faire le dèbut de la macro se serais sympas . pour t'aider voilà la formule qui faudrait traduire en vba :

Rechercher la dernière ligne de la cololonne "E" contanant le mot "DECEMBRE" et si on le trouve alors executer la macro .

Cette recherche devant se faire sur une plage couvrant la première partie da la zonne d'impresstion c'est à dire entre les colonnes "A et G" sur un nombre de ligne d'environ 10 000 .

Espèrant avoir être claire dans ma demende je te dis à plus sans oublier de te remercier par avance pour le coup de main . Amicalement BR44
 
- 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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…