Supprimer Feuilles Excel avec Listbox dynamique
Bonjour le forum,
J'ai un soucis avec mon code. Je ne peux pas poster tous mon fichier donc je vous donnerais uniquement le code concerné.
A chaque création de nouveau projet, je crée une feuille sur mon classeur qui est invisible qui a pour but de sauvegarder les données du projet. Puis je peux gérer mes projets en ouvrant une listbox répertoriant mes projets. Ensuite je peux soit modifier soit supprimer un projet. Pour se faire il me suffit de cliquer sur le bouton supprimer de mon UF pour supprimer le projet de la listbox MAIS aussi la feuille associé. Et c'est là que je n'y arrive pas.
voici le code :
Option Explicit
Private Sub CommandButton2_Click() 'Bouton "Supprimer"
Dim j As Long
Dim conf As Integer
conf = MsgBox("Voulez vous supprimer le projet " & ConcaTList & " " & "?", vbYesNo, "Confirmation")
If conf = vbYes Then
For j = ListBox1.ListCount - 1 To 0 Step -1
If ListBox1.Selected(j) = True Then
'on Supprime l'élément selectionné dans la ListBox.
ListBox1.RemoveItem (j)
Sheets(ListBox1.List(j)).Delete
Exit For
End If
Next j
End If
End Sub
Private Sub UserForm_Initialize()
Dim sh As Object
'je parcours chaque feuille du classeur
For Each sh In Worksheets
'si la feuille est visible je met son nom dans ma listbox
If sh.Visible = False Then Me.ListBox1.AddItem sh.name
Next sh
End Sub
Function ConcaTList() As String 'Fonction pour connaître la valeur sélectionnée dans la listbox
Dim Txt As String
Dim i As Byte
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
Txt = ListBox1.List(i)
End If
Next i
ConcaTList = Txt
End Functionc'est à ce niveau : Sheets(ListBox1.List(j)).Delete que ça ne fonctionne pas et m 'indique une erreur "index de table de propriété non valide".
De plus si j'ai plusieurs projet et que je sélectionne le premier, c'est la feuille du deuxième qui est supprimé. Si je sélectionne le dernier j'ai ce message d'erreur cité précèdemment.
J'espère avoir été assez clair. Merci d'avance pour vos réponses
Re,
Autant pour moi j'ai fais une erreur bête et j'ai passé la journée à me prendre la tête dessus.... En fait je supprimais mon item de listbox avant la page d'où l'erreur
partie du code corrigée:
Private Sub CommandButton2_Click() 'Bouton "Supprimer"
Dim j As Long
Dim conf As Integer
conf = MsgBox("Voulez vous supprimer le projet " & ConcaTList & " " & "?", vbYesNo, "Confirmation")
If conf = vbYes Then
For j = ListBox1.ListCount - 1 To 0 Step -1
If ListBox1.Selected(j) = True Then
'on Supprime l'élément selectionné dans la ListBox.
Sheets(ListBox1.List(j)).Delete
ListBox1.RemoveItem (j)
Exit For
End If
Next j
End If
End SubBonne continuation