Effacer contenu d'un classeur lors de sa fermeture

EBL

XLDnaute Junior
Bonjour le Forum,

Voici ma question.
J'ai crééer des formulaires en Access via lesquels il est possible d'exporter les résultats de querys vers des fichiers excel standard. Une fois exporter, un message apparaît disant que la personne utilisant est prié de sauvegarder le contenu en renommant le fichier dans l'un de ses folders (bref un détail )
Ma question est: Est-il possible de supprimer toutes les sheets sauf la "sheet d'accueil" lors de la fermeture du classeur excel?

Exemple:
Mon fichier contient 5 sheets:

Sheet 1, sheet 2, Sheet 3, sheet 4, Sheet 5 ==> A la fermeture du classeur je voudrais que les sheet 2,3,4,5 soient effacées et ce sans message d'avertissement ou de sauvegarde ou peu importe.

Merci à vous

Ebl
 

SergiO

XLDnaute Accro
Re : Effacer contenu d'un classeur lors de sa fermeture

Bonjour EBL

Voici un code à mettre dans ThisWorkbook
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
For i = 2 To 5
Worksheets("Sheet" & i).Delete
Next i
ActiveWorkbook.Save
End Sub

@+
 

porcinet82

XLDnaute Barbatruc
Re : Effacer contenu d'un classeur lors de sa fermeture

Salut,

Code a placer dans le module ThisWorkbook (penses à adapter le chemin d'enregistrement et le nom du classeur...) :
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Integer
Application.DisplayAlerts = False
For i = Sheets.Count To 1 Step -1
    If Not Sheets(i).Name = "sheet d'accueil" Then Sheets(i).Delete
Next i
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\Admin\Bureau\Classeur2.xls"
Application.DisplayAlerts = True
End Sub

@+

Edition : De quelques secondes Sergio...
 

EBL

XLDnaute Junior
Re : Effacer contenu d'un classeur lors de sa fermeture

Rebonjour et merci pour vos solution,

Mais une autre question quand même, supposons que mes sheets soient nommées et non numérotées comment puis-je faire dans ce bout de code présenté plus haut?

Exemple: sheet 1= Ebl, sheet 2= forum excell, sheet 3= pentium, etc ...

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
For i = 2 To 5
Worksheets("Sheet" & i).Delete
Next i
ActiveWorkbook.Save
End Sub

Encore un grand merci

Ebl
 

Spitnolan08

XLDnaute Barbatruc
Re : Effacer contenu d'un classeur lors de sa fermeture

Bonjour le fil,

Tes sheets n'ont pas besoin d'être numérotées dan ta saisie d'onglet. Chaque feuille est repérée par Excel en tant que feuille 1, 2, 3... Donc le code de Romain va fonctionner dans tous les cas.

Cordialement
 

EBL

XLDnaute Junior
Re : Effacer contenu d'un classeur lors de sa fermeture

Bonsoir,

Ok je comprends mieux. Donc peu importe le nom que l'on donne à nos sheets excel les considères comme sheet 1, 2, 3 etc ...
Un peu comme en Access quand on définit les cases à cocher?
Je présume qu'il commence à compter en partant de la gauche?
Et donc si je ne veux pas effacer la sheet 1 il me suffit de mettre :
De 2 à 8 par exemples?

Encore merci à vous

Ebl
 

EBL

XLDnaute Junior
Re : Effacer contenu d'un classeur lors de sa fermeture

Un grand merci à vous.

Maintenant une autre question quand même.
Si ce fichier est en Read Only, comment puis-je faire pour pouvoir exporter depuis access dans celui ci?

Bien à vous

Ebl
 

Discussions similaires

Statistiques des forums

Discussions
312 378
Messages
2 087 758
Membres
103 660
dernier inscrit
205 Peugeot