VBA qupprimer une feuille sur un classeur non
Résolu/Fermé
zewriggles
Messages postés
11
Date d'inscription
jeudi 30 avril 2009
Statut
Membre
Dernière intervention
30 avril 2009
-
30 avril 2009 à 14:57
zewriggles - 4 mai 2009 à 17:18
zewriggles - 4 mai 2009 à 17:18
A voir également:
- VBA qupprimer une feuille sur un classeur non
- Comment supprimer une feuille sur word - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Comment imprimer en a5 sur une feuille a4 - Guide
- Feuille blanche pour écrire sur l'ordinateur gratuit - Forum loisirs/vie pratique
- Copier une feuille excel dans un autre classeur avec liaison ✓ - Forum Excel
2 réponses
Utilisateur anonyme
30 avril 2009 à 18:41
30 avril 2009 à 18:41
Bonjour,
Est-ce que votre code est dans un module ou derrière une feuille !
J'aurais tendance a penser que le code est derrière une feuille, puisque tu dis
qu'il est appeller par un bouton.
Or pour travailler sur plus d'une feuille, il faut être dans un module.
Exemple type :
Derrière la feuille:
Dans un module [Module1] :
Lupin
Est-ce que votre code est dans un module ou derrière une feuille !
J'aurais tendance a penser que le code est derrière une feuille, puisque tu dis
qu'il est appeller par un bouton.
Or pour travailler sur plus d'une feuille, il faut être dans un module.
Exemple type :
Derrière la feuille:
Option Explicit Private Sub CommandButton1_Click() Call Module1.Validation End Sub '
Dans un module [Module1] :
Option Explicit Sub Validation() Dim wbExcel As Workbook Dim wsExcel As Worksheet 'Ouverture d'un fichier Excel Workbooks.Open ("B:\Texte et excel\Fichier excel\recap_042009.xls") Set wbExcel = ActiveWorkbook nbrfeuille = wbExcel.Worksheets.Count 'MsgBox ("nbrfeuille = " & nbrfeuille) For Each wsExcel In wbExcel.Worksheets If wsExcel.Name <> "sem" & sem And wsExcel.Name <> "Feuil1" Then wsExcel.Delete End If Loop End Sub '
Lupin
Utilisateur anonyme
4 mai 2009 à 13:38
4 mai 2009 à 13:38
re:
J'ai initialisé les variables et le code fonctionne chez moi ???
Lupin
J'ai initialisé les variables et le code fonctionne chez moi ???
Option Explicit Sub Validation() Dim wbExcel As Workbook Dim wsExcel As Worksheet Dim sem As Long 'Ouverture d'un fichier Excel Workbooks.Open ("C:\Document\Excel\Test.xls") Set wbExcel = ActiveWorkbook sem = 1 For Each wsExcel In wbExcel.Worksheets If wsExcel.Name <> "sem" & sem And wsExcel.Name <> "Feuil1" Then Application.DisplayAlerts = False wsExcel.Delete Application.DisplayAlerts = True End If Next wsExcel End Sub '
Lupin
J'ai trouver une façon qui m'aller très bien je te la donne si ça peut te servir à toi ou a d'autres
Workbooks.Open ("cheminfichier")
ch = ActiveWorkbook.FullName
MsgBox ch
nbrfeuille = Sheets.Count
MsgBox ("nbrfeuille = " & nbrfeuille)
i = 1
Do While i <> nbrfeuille
nbrfeuille = Sheets.Count
Set maFeuille = Worksheets(i)
If maFeuille.Name <> "sem" & sem And maFeuille.Name <> "Feuil1" Then
Application.DisplayAlerts = False
maFeuille.Delete
Application.DisplayAlerts = True
Else
i = i + 1
maFeuille.Name = "Feuil1"
End If
Loop
'Sauvegarde et fermeture du fichier
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True
ActiveWorkbook.Close
Workbooks.Open ("cheminfichier")
ch = ActiveWorkbook.FullName
MsgBox ch
nbrfeuille = Sheets.Count
MsgBox ("nbrfeuille = " & nbrfeuille)
i = 1
Do While i <> nbrfeuille
nbrfeuille = Sheets.Count
Set maFeuille = Worksheets(i)
If maFeuille.Name <> "sem" & sem And maFeuille.Name <> "Feuil1" Then
Application.DisplayAlerts = False
maFeuille.Delete
Application.DisplayAlerts = True
Else
i = i + 1
maFeuille.Name = "Feuil1"
End If
Loop
'Sauvegarde et fermeture du fichier
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True
ActiveWorkbook.Close
4 mai 2009 à 10:03
Je viens d'essayer ce que tu m'a proposé Luîn, il est vrai que mes codes était sous une feuille maintenant il est sou un module comme tu me l'a dit et tout le monde me dit que c'est mieux. merci
parc ontre, les feuilles ne se supprime toujours pas et j'ai beau réfléchir et faire toute les tentative désespéré rien ne fonctionne. Est-ce que vous auriez une autre idéé?peut-être que mes fichiers ne sont pas bien ouvert?Est-ce qu'il serait possible de rendre visible que le fichier qui m'intéresse et après supprimer les feuilles par un activeworkbook?
PS : Juste une petite erreur sur ton code Lupin, c'est un next pour le for each, j'en suis sure que tu le savais toi même