Supprimer une feuille a partir d'une combobox

arkancylla -  
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   -
bonjour,
je travaille sous vba et je souhaite pouvoir supprimer une feuille excel dont je choisis le nom dans une combobox. comment dois je faire?

7 réponses

talokan Messages postés 7 Statut Membre
 
hello voila une possibilité :

Dim ws As Worksheet
Set ws = Worksheets(string_Nom_de_la_feuille)
ws.Delete
0
arkancylla
 
merci pour ton aide
mais comment je fais pour dire que le nom de la feuille c'est la valeur saisie dans le combobox?
0
talokan Messages postés 7 Statut Membre
 
C'est une Combo box d'un userForm ? ou c'est une combo box sur la feuille excel ?
0
arkancylla
 
dans une userform
0

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

Posez votre question
talokan Messages postés 7 Statut Membre
 
Avec un user form (tous les objets ont leur nom par défaut) avec un bouton pour supprimer la feuille selectionnée :

' sur clique du bouton supprime la feuille selectionnée dans la Combo
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = Worksheets(ComboBox1.Value)
ws.Delete
End Sub

'Lors du lancement du Userform rempli la combo
Private Sub UserForm_Activate()
Dim ws As Worksheet
For Each ws In Worksheets
ComboBox1.AddItem ws.Name
Next ws
End Sub
0
arkancylla
 
ok mais vba genere une erreur et me dit "l'indice n'appartient pas a la selection". Cette erreur est générée a la ligne Set ws = Worksheets(ComboBox2.Value)
0
talokan Messages postés 7 Statut Membre
 
Comment s'appel ta combobox ? Qu'est quelle à comme valeur ?
(Peut-être peux tu me donner un petit bout de code ?)
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

quand tu écrit :

Set ws = Worksheets(ComboBox2.Value)

ce n'est pas assez précis pour vba

il faut rajouter:

Set ws = Worksheets(Worksheets(mafeuille).ComboBox2.Value)

0
talokan Messages postés 7 Statut Membre
 
Hello je dois partir malheureusement ....

Quelques idées :

Set ws = Worksheets( ici tu dois avoir le nom de la feuille )

je ne sais pas quel est le contenu de ta combo box mais normalement si tu met le nom dans la valeur de la combo, alors
ComboBox1.Value -> ramène le nom de la feuille.

Sans cela c'est peut-être que tu ne travaille pas dans le bon classeur : tu peux positioner dans le classeur avec un

Workbooks(nom_du_classeur).worksheets(...)
A+ et bon courrage.
0