Suppression d'onglet sélectionné par combobox activex

Matt87

XLDnaute Nouveau
Bonjour à tous,

Merci à l'avance de l'attention porté à l'égard de mon problème. Je cherche depuis quelques jours un bout de code qui pourrait me permettre de supprimer un onglet préalablement sélectionné via un ComboBox ActiveX situé sur un onglet et non via un Userform.

J'ai trouvé une panoplie d'information via différents forum mais jamais les solutions s'adaptent à mon problème. La majorité des codes trouvés font références à des ComboBox via Userform. Ma ComboBox est situé sur une feuille nommée ("Coordos") et est alimentée de cette façon:

Private Sub combobox1_gotfocus()

Dim j As Long

Set Ws = Worksheets("Utilisateurs")

ThisWorkbook.ActiveSheet.ComboBox1.Clear 'Vide la liste

With ThisWorkbook.ActiveSheet.ComboBox1
For j = 9 To Ws.Range("F" & Rows.Count).End(xlUp).Row
If Ws.Range("F" & j).Value <> "" Then 'recupére les données de la colonne L de la feuille 1
.AddItem Ws.Range("F" & j)

End If
Next j
End With

End Sub

Celle-ci s'alimente correctement en fonction des valeurs contenus dans une colonne d'un autre onglet. J'aimerais pouvoir sélectionner le nom de l'onglet via la ComboBox de l'onglet ("Cooordos") et ainsi confirmer la supppression de l'onglet.

Voici le code qui me permettrait d'arriver à mes fins mes en vain:

Sub supression()
Dim x As Range
Dim Page%, feuille$
Dim i&
Dim marep As Variant

Application.ScreenUpdating = False

marep = MsgBox("Êtes-vous certain de vouloir supprimer l'onglet sélectionné?", vbYesNo + vbInformation)
If marep = yes Then

For i = 1 To Worksheets.Count
If Sheets("Coordos").ComboBox1.Value = Sheets(i).Name Then
Sheets(i).Delete

End If
Next i
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End If

End Sub

Est-ce que quelqu'un peut me guider?
Encore une fois merci à l'avance et je souhaite à tous une agréable journée/soirée!
 

Rouge

XLDnaute Impliqué
Bonjour,

Copiez ceci dans le module de la feuille "Coordos"
VB:
Private Sub ComboBox1_Change()
    Application.DisplayAlerts = False
    If ComboBox1.Text <> "" Then
        If MsgBox("Êtes-vous certain de vouloir supprimer l'onglet sélectionné?", vbYesNo + vbInformation) = vbYes Then Sheets(ComboBox1.Text).Delete
    End If
End Sub
Cdlt
 

Matt87

XLDnaute Nouveau
Bonjour Rouge,

Merci pour votre réponse. Malheureusement, je dois opter pour une autre option puisque ce même ComboBox est également utilisé pour atteindre l'onglet sélectionné par le biais d'une autre macro sur la même feuille.

Bref, je sélectionne le nom de l'onglet dans la ComboBox de la feuille ("Coordos") et je clic sur un bouton «Atteindre» pour activer l'onglet ou l'autre bouton «Supprimer» pour supprimer l'Onglet sélectionné.

Je crois que le code que j'avais n'est pas très loin du compte mais en exécutant le «Pas à pas» du débogueur le ComboBox renvoi la valeur »Nothing» même si un item est sélectionné dans la liste déroulante. Je suis dans l'impasse.
 

Rouge

XLDnaute Impliqué
Alors dans ce cas, copiez il faut copier la ligne dans la macro (dans un module standard) affecté à la macro "Supprimer"
VB:
    If MsgBox("Êtes-vous certain de vouloir supprimer l'onglet sélectionné?", vbYesNo + vbInformation) = vbYes Then Sheets(Sheets("Coordos").ComboBox1.Text).Delete
Cdlt
 

Matt87

XLDnaute Nouveau
Bonjour Rouge,

C’est nickel avec le dernier code dans le module de ma macro! Seriez-vous en mesure de m’expliquer!

Je comprends que mon erreur vient du fait que la valeur de ma ComboBox n’était pas déclaré en tant que Text mais je suis incapable de comprendre quand la déclarer de cette façon et quand ne pas le faire?

Encore une fois merci pour votre soutien, c’est vraiment apprécié!

Cordialement,
 

Rouge

XLDnaute Impliqué
Voici quelques éléments

"ComboBox1.List" donne la liste de la combobox, exemple quand on veut la remplir avec une plage de cellule: ComboBox1.List = Range("A1:A10").Value

"ComboBox1.text" donne la valeur de la position de l'élément dans la liste

"ComboBox1.ListIndex" donne le numéro de la position de l'élément dans la liste (attention, le premier élément de la liste porte le N° 0)
 

Discussions similaires

Réponses
11
Affichages
280

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi