suppression de feuille

S

Stéph

Guest
Bonjour le forum

j'ai un soucis, je souhaiterai empécher de supprimer deux feuilles nommées Data et General parmi la liste complète des feuilles dans une comboBox dans l'Userform

Voici mon code actuel:

Private Sub CommandButton10_Click()
'bouton pour supprimer l'onglet lié avec le ComboBox1

Dim Mes As String
Dim Bouton As Single
Dim Titre As String
Dim Onglet As Variant
Dim Res As Long

If UserForm1.ComboBox1.ListIndex = -1 Then Exit Sub

For Each Onglet In ActiveWorkbook.Worksheets
If Onglet.Name <> "Data" Or Onglet.Name <> "General" Then
Worksheets(Onglet).Delete

Else
'message si la feuille "Data" et/ou "General" a été sélectionné
Mes = "Il est impossible de supprimer cette Feuille"
Bouton = vbOKOnly + vbInformation
Titre = "Suppression Portefeuille"
Res = MsgBox(Mes, Bouton, Titre)

If Res = 1 Then Exit Sub
'traitement de oui

End If

Next

End Sub

Il y a surement une solution, mais je ne la trouve pas !!
Bon ap'

Steph
 
Y

yeahou

Guest
Bonjour Stéph, le forum

ton code est bon sauf la ligne
Worksheets(Onglet).Delete
onglet est une feuille donc tu dois écrire
onglet.delete
ou
Worksheets(Onglet.name).Delete

voila ton code modifié, une égalité est plus simple à lire

Private Sub CommandButton10_Click()
'bouton pour supprimer l'onglet lié avec le ComboBox1

Dim Mes As String
Dim Bouton As Single
Dim Titre As String
Dim Onglet As Worksheet
Dim Res As Long

If UserForm1.ComboBox1.ListIndex = -1 Then Exit Sub

For Each Onglet In ActiveWorkbook.Worksheets
If Onglet.Name = "Data" Or Onglet.Name = "General" Then
'message si la feuille "Data" et/ou "General" a été sélectionné
Mes = "Il est impossible de supprimer cette Feuille"
Bouton = vbOKOnly + vbInformation
Titre = "Suppression Portefeuille"
Res = MsgBox(Mes, Bouton, Titre)
If Res = 1 Then Exit Sub
'traitement de oui
Else
Onglet.Delete
End If
Next
End Sub

Cordialement, A+
 
S

Stéph

Guest
Bonjour Yeahou , le forum
J'ai toujours un problème au niveau de ces 2 lignes

If UserForm1.ComboBox1.ListIndex = -1 Then Exit Sub
For Each Onglet In ActiveWorkbook.Worksheets

Il faut récupérer le nom de l'onglet se trouvant dans le ComboBox1
Car pour l'instant Excel me répond en disant le message de la msgBox

je redonne le code:

Private Sub CommandButton10_Click()
'bouton pour supprimer l'onglet lié avec le ComboBox1

Dim Mes As String
Dim Bouton As Single
Dim Titre As String
Dim Onglet As Worksheet
Dim Res As Long

If UserForm1.ComboBox1.ListIndex = -1 Then Exit Sub

For Each Onglet In ActiveWorkbook.Worksheets
If Onglet.Name = "Data" Or Onglet.Name = "General" Then
'message si la feuille "Data" et/ou "General" a été sélectionné
Mes = "Il est impossible de supprimer cette Feuille"
Bouton = vbOKOnly + vbInformation
Titre = "Suppression Portefeuille"
Res = MsgBox(Mes, Bouton, Titre)
If Res = 1 Then Exit Sub
'traitement de oui
Else
Onglet.Delete
End If
Next
End Sub
 
S

Stéph

Guest
Bonjour le forum et Yeahou


J'ai trouvé mais je post mon code si ça peut aider quelqu'un d'autre !!

Private Sub CommandButton10_Click()
'bouton pour supprimer l'onglet lié avec le ComboBox1

Dim Mes As String
Dim Bouton As Single
Dim Titre As String
Dim Onglet As Variant
Dim Res As Long

If UserForm1.ComboBox1.ListIndex = -1 Then Exit Sub

If CStr(UserForm1.ComboBox1) = "Data" Or CStr(UserForm1.ComboBox1) = "General" Then

'message si la feuille "Data" et/ou "General" a été sélectionné
Mes = "Il est impossible de supprimer cette Feuille"
Bouton = vbOKOnly + vbInformation
Titre = "Suppression Portefeuille"
Res = MsgBox(Mes, Bouton, Titre)
If Res = 1 Then Exit Sub
'traitement de oui
Else

Worksheets(CStr(UserForm1.ComboBox1)).Delete
End If

End Sub

Bonne journée

Stéph
 

Statistiques des forums

Discussions
314 206
Messages
2 107 237
Membres
109 781
dernier inscrit
Alex55320