OVH Cloud OVH Cloud

MsgBox qui efface la ligne sélectionnée dans une listbox

5 réponses
Avatar
Maud
Bonjour à tous,
alors voilà j'ai un userform qui contient un listbox avec entre autre tout
les noms des fichiers dont j'ai besoin. Je souhaiterais que si on sélectionne
une ligne et que l'on click sur le bouton supprimer un message
d'avertissement apparaisse et si l'utilisateur clique sur oui le fichier
ainsi que d'autres données soit supprimé.Sinon retour au userform.
alors j'ai commencer doucement mais ca coince déjà pouvez vous m'aidez??
Private Sub CommandButton2_Click()

Dim Msg, Style, Title, Response, MyString
FicheProjetbis = ListBox1.Column(2)
If ListBox1.Selected() = True Then 'si une ligne est séléctionnée
Msg = "Souhaitez vous vraimment supprimer " & FicheProjetbis & "?" '
Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "supprimer une fiche projet " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
Kill FicheProjetbis & ".xls"

Else ' L'utilisateur a choisi Non.
UserForm1.Show
End If
Else: MsgBox "Vous devez sélectionner un projet", vbInformation
End If

End Sub

ca coice ici pour l'instant If ListBox1.Selected() = True Then ("argument
non facultatif" qu'il me dit)
mais peut-être que la suite n'est pas mieux!

Merci d'avance

5 réponses

Avatar
El pequeno
Bonjour.
La présence de parentaises demande une valeur. En l'occurence, il s'agit
d'un numéro d'index qu'il serait bon de transmettre à l'aide d'une variable.
Essaye d'inclure dans ta macro :
Dim nIndex as integer
nIndex = ListBox1.ListIndex
If ListBox1.Selected(nIndex) = True Then...etc

Le numéro d'index indique le numéro de ligne sélectionné dans ta ListBox.

Sans vouloir te décourager (ou te vexer) il me semble que tu te lance dans
un programme assez balaise par rapport au niveau que tu parait avoir.
Ceci dit, c'est en déplaçant les montagnes qu'on apprend à les déplacer !
Bon courage donc.


Bonjour à tous,
alors voilà j'ai un userform qui contient un listbox avec entre autre tout
les noms des fichiers dont j'ai besoin. Je souhaiterais que si on sélectionne
une ligne et que l'on click sur le bouton supprimer un message
d'avertissement apparaisse et si l'utilisateur clique sur oui le fichier
ainsi que d'autres données soit supprimé.Sinon retour au userform.
alors j'ai commencer doucement mais ca coince déjà pouvez vous m'aidez??
Private Sub CommandButton2_Click()

Dim Msg, Style, Title, Response, MyString
FicheProjetbis = ListBox1.Column(2)
If ListBox1.Selected() = True Then 'si une ligne est séléctionnée
Msg = "Souhaitez vous vraimment supprimer " & FicheProjetbis & "?" '
Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "supprimer une fiche projet " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
Kill FicheProjetbis & ".xls"

Else ' L'utilisateur a choisi Non.
UserForm1.Show
End If
Else: MsgBox "Vous devez sélectionner un projet", vbInformation
End If

End Sub

ca coice ici pour l'instant If ListBox1.Selected() = True Then ("argument
non facultatif" qu'il me dit)
mais peut-être que la suite n'est pas mieux!

Merci d'avance


Avatar
michdenis
Bonjour Maud,

voici un exemple:

Dans la procédure :
Private Sub CommandButton2_Click()
tu dois définir la variable "Chemin" où sont tes fichiers sur le disque.

dans La procédure Sub InitialerListBox()
Défini le nom de la feuille et la plage de cellules que tu utilises pour ton listbox.
IMPORTANT : tu ne dois pas définir la propriété RowSource de ton Listbox, la procédure s'en charge.

Ces procédures en plus de détruire le fichier de ta listbox, va remettre ta liste à jour dans ta feuillle de données et de même
mettre à jour ta liste affichée dans ton listbox.

Si j'ai bien compris, le nom de ton fichier à détruire se retrouve dans la colonne 2 de ton listbox... sinon faudra modifier la
procédure !

La Commande Kill a été désactivé pour que tu puisses tester la procédure sans difficulté.

'Variable dans le haut du module de ton formulaire
Dim Rg As Range

'-----------------------------------
Private Sub CommandButton2_Click()

Dim Msg, Style, Title, Response, MyString
Dim Ok As Boolean, Chemin As String

Chemin = "c:Monrépertoire" 'à déterminer

Dim Nb As Long, A As Long
Nb = ListBox1.ListCount

For A = 0 To Nb - 1
'si une ligne est séléctionnée
If ListBox1.Selected(A) = True Then
Ok = True
Msg = "Souhaitez vous vraimment supprimer " & _
Me.ListBox1.List(A, 1) & "?" '
'Définit le message.
' Définit les boutons.
Style = vbYesNo + vbCritical + vbDefaultButton2
' Définit le titre.
Title = "supprimer une fiche projet "
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
' L'utilisateur a choisi Oui.
Rg(1).Offset(A).Resize(, 2).Delete
InitialerListBox
'Kill Chemin & Me.ListBox1.List(A, 1) & ".xls"
End If
ListBox1.Selected(A) = False
End If
Next
If Ok = False Then
MsgBox "Vous n'avez pas fait de sélection."
End If
End Sub

'-----------------------------------
Private Sub UserForm_Initialize()

InitialerListBox

End Sub
'-----------------------------------
Sub InitialerListBox()


Dim Tblo As Variant

With Worksheets("Feuil1")
Set Rg = .Range("A1:B" & .Range("A65536").End(xlUp).Row)
Tblo = Rg
End With
With Me.ListBox1
.ColumnCount = Rg.Columns.Count
.List = Tblo
End With
End Sub
'-----------------------------------


Salutations!



"Maud" a écrit dans le message de news:
Bonjour à tous,
alors voilà j'ai un userform qui contient un listbox avec entre autre tout
les noms des fichiers dont j'ai besoin. Je souhaiterais que si on sélectionne
une ligne et que l'on click sur le bouton supprimer un message
d'avertissement apparaisse et si l'utilisateur clique sur oui le fichier
ainsi que d'autres données soit supprimé.Sinon retour au userform.
alors j'ai commencer doucement mais ca coince déjà pouvez vous m'aidez??
Private Sub CommandButton2_Click()

Dim Msg, Style, Title, Response, MyString
FicheProjetbis = ListBox1.Column(2)
If ListBox1.Selected() = True Then 'si une ligne est séléctionnée
Msg = "Souhaitez vous vraimment supprimer " & FicheProjetbis & "?" '
Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "supprimer une fiche projet " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
Kill FicheProjetbis & ".xls"

Else ' L'utilisateur a choisi Non.
UserForm1.Show
End If
Else: MsgBox "Vous devez sélectionner un projet", vbInformation
End If

End Sub

ca coice ici pour l'instant If ListBox1.Selected() = True Then ("argument
non facultatif" qu'il me dit)
mais peut-être que la suite n'est pas mieux!

Merci d'avance
Avatar
Maud
merci beaucoup j'avais fait quelque chose aussi mais beaucoup moins clair et
lisible!
j'ai juste une question, car je doit ajouter des fonctions: que fait
exactement cette ligne:
Rg(1).Offset(A).Resize(, 2).Delete
si j'ai bien compris elle va dans ma plage prend le texte séléctionné la

collone 2 et l'efface? En fait je souhaiterais effacer la ligne entière!


Ma question s'arrête ici et je vous remercie beaucoup, beaucoup, beaucoup! :-D
en option :
Si vous voulez jeter un oeil à ce qu'une débutante a fait :
Dim Msg, Style, Title, Response, t
Dim nIndex As Integer

nIndex = ListBox1.ListIndex
If ListBox1.Selected(nIndex) = True Then
FicheProjetbis = ListBox1.Column(2)
Msg = "Souhaitez vous vraiment supprimer " & FicheProjetbis & "?"
' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les
boutons.
Title = "supprimer une fiche projet " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utilisateur a choisi Oui.

'on efface le fichier
Kill "pars0001SapOngoing Live90-projets 'évolution
applicative'Projet Bases ACCES50-Expression de besoinbase plan de charge"
& FicheProjetbis & ".xls"


'on cherche la ligne dans la fiche projets où sont entrées les
données pour les supprimer
For Each t In
Workbooks("Charge_V1").Worksheets("projets").Range("nom_projet_créer")
With
Workbooks("Charge_V1").Worksheets("projets").Range("nom_projet_créer")
Set cLine = .Find(FicheProjetbis, LookIn:=xlValues,
lookat:=xlWhole)
If Not cLine Is Nothing Then
Lignedest = cLine.Row

'On efface la ligne
Workbooks("Charge_V1").Worksheets("projets").Rows(Lignedest &
":" & Lignedest).Clear
End If
End With
Next
'tri du futur contenu de la listbox1

Workbooks("Charge_V1").Worksheets("projets").Range("A3:G200").Sort
Key1:=Workbooks("Charge_V1").Worksheets("projets").Range("A3"),
Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:úlse, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
'chargement
Load UserForm1

Else ' L'utilisateur a choisi Non.

End If
Else: MsgBox "Vous devez sélectionner un projet", vbInformation
End If



Bonjour Maud,

voici un exemple:

Dans la procédure :
Private Sub CommandButton2_Click()
tu dois définir la variable "Chemin" où sont tes fichiers sur le disque.

dans La procédure Sub InitialerListBox()
Défini le nom de la feuille et la plage de cellules que tu utilises pour ton listbox.
IMPORTANT : tu ne dois pas définir la propriété RowSource de ton Listbox, la procédure s'en charge.

Ces procédures en plus de détruire le fichier de ta listbox, va remettre ta liste à jour dans ta feuillle de données et de même
mettre à jour ta liste affichée dans ton listbox.

Si j'ai bien compris, le nom de ton fichier à détruire se retrouve dans la colonne 2 de ton listbox... sinon faudra modifier la
procédure !

La Commande Kill a été désactivé pour que tu puisses tester la procédure sans difficulté.

'Variable dans le haut du module de ton formulaire
Dim Rg As Range

'-----------------------------------
Private Sub CommandButton2_Click()

Dim Msg, Style, Title, Response, MyString
Dim Ok As Boolean, Chemin As String

Chemin = "c:Monrépertoire" 'à déterminer

Dim Nb As Long, A As Long
Nb = ListBox1.ListCount

For A = 0 To Nb - 1
'si une ligne est séléctionnée
If ListBox1.Selected(A) = True Then
Ok = True
Msg = "Souhaitez vous vraimment supprimer " & _
Me.ListBox1.List(A, 1) & "?" '
'Définit le message.
' Définit les boutons.
Style = vbYesNo + vbCritical + vbDefaultButton2
' Définit le titre.
Title = "supprimer une fiche projet "
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
' L'utilisateur a choisi Oui.
Rg(1).Offset(A).Resize(, 2).Delete
InitialerListBox
'Kill Chemin & Me.ListBox1.List(A, 1) & ".xls"
End If
ListBox1.Selected(A) = False
End If
Next
If Ok = False Then
MsgBox "Vous n'avez pas fait de sélection."
End If
End Sub

'-----------------------------------
Private Sub UserForm_Initialize()

InitialerListBox

End Sub
'-----------------------------------
Sub InitialerListBox()


Dim Tblo As Variant

With Worksheets("Feuil1")
Set Rg = .Range("A1:B" & .Range("A65536").End(xlUp).Row)
Tblo = Rg
End With
With Me.ListBox1
.ColumnCount = Rg.Columns.Count
.List = Tblo
End With
End Sub
'-----------------------------------


Salutations!



"Maud" a écrit dans le message de news:
Bonjour à tous,
alors voilà j'ai un userform qui contient un listbox avec entre autre tout
les noms des fichiers dont j'ai besoin. Je souhaiterais que si on sélectionne
une ligne et que l'on click sur le bouton supprimer un message
d'avertissement apparaisse et si l'utilisateur clique sur oui le fichier
ainsi que d'autres données soit supprimé.Sinon retour au userform.
alors j'ai commencer doucement mais ca coince déjà pouvez vous m'aidez??
Private Sub CommandButton2_Click()

Dim Msg, Style, Title, Response, MyString
FicheProjetbis = ListBox1.Column(2)
If ListBox1.Selected() = True Then 'si une ligne est séléctionnée
Msg = "Souhaitez vous vraimment supprimer " & FicheProjetbis & "?" '
Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "supprimer une fiche projet " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
Kill FicheProjetbis & ".xls"

Else ' L'utilisateur a choisi Non.
UserForm1.Show
End If
Else: MsgBox "Vous devez sélectionner un projet", vbInformation
End If

End Sub

ca coice ici pour l'instant If ListBox1.Selected() = True Then ("argument
non facultatif" qu'il me dit)
mais peut-être que la suite n'est pas mieux!

Merci d'avance





Avatar
El pequeno
Et bien,voila donc une montagne qui me semble déplacée...
Pour la ligne entière : .EntireRow.Delete
Slts


merci beaucoup j'avais fait quelque chose aussi mais beaucoup moins clair et
lisible!
j'ai juste une question, car je doit ajouter des fonctions: que fait
exactement cette ligne:
Rg(1).Offset(A).Resize(, 2).Delete
si j'ai bien compris elle va dans ma plage prend le texte séléctionné la

collone 2 et l'efface? En fait je souhaiterais effacer la ligne entière!


Ma question s'arrête ici et je vous remercie beaucoup, beaucoup, beaucoup! :-D
en option :
Si vous voulez jeter un oeil à ce qu'une débutante a fait :
Dim Msg, Style, Title, Response, t
Dim nIndex As Integer

nIndex = ListBox1.ListIndex
If ListBox1.Selected(nIndex) = True Then
FicheProjetbis = ListBox1.Column(2)
Msg = "Souhaitez vous vraiment supprimer " & FicheProjetbis & "?"
' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les
boutons.
Title = "supprimer une fiche projet " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utilisateur a choisi Oui.

'on efface le fichier
Kill "pars0001SapOngoing Live90-projets 'évolution
applicative'Projet Bases ACCES50-Expression de besoinbase plan de charge"
& FicheProjetbis & ".xls"


'on cherche la ligne dans la fiche projets où sont entrées les
données pour les supprimer
For Each t In
Workbooks("Charge_V1").Worksheets("projets").Range("nom_projet_créer")
With
Workbooks("Charge_V1").Worksheets("projets").Range("nom_projet_créer")
Set cLine = .Find(FicheProjetbis, LookIn:=xlValues,
lookat:=xlWhole)
If Not cLine Is Nothing Then
Lignedest = cLine.Row

'On efface la ligne
Workbooks("Charge_V1").Worksheets("projets").Rows(Lignedest &
":" & Lignedest).Clear
End If
End With
Next
'tri du futur contenu de la listbox1

Workbooks("Charge_V1").Worksheets("projets").Range("A3:G200").Sort
Key1:=Workbooks("Charge_V1").Worksheets("projets").Range("A3"),
Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:úlse, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
'chargement
Load UserForm1

Else ' L'utilisateur a choisi Non.

End If
Else: MsgBox "Vous devez sélectionner un projet", vbInformation
End If



Bonjour Maud,

voici un exemple:

Dans la procédure :
Private Sub CommandButton2_Click()
tu dois définir la variable "Chemin" où sont tes fichiers sur le disque.

dans La procédure Sub InitialerListBox()
Défini le nom de la feuille et la plage de cellules que tu utilises pour ton listbox.
IMPORTANT : tu ne dois pas définir la propriété RowSource de ton Listbox, la procédure s'en charge.

Ces procédures en plus de détruire le fichier de ta listbox, va remettre ta liste à jour dans ta feuillle de données et de même
mettre à jour ta liste affichée dans ton listbox.

Si j'ai bien compris, le nom de ton fichier à détruire se retrouve dans la colonne 2 de ton listbox... sinon faudra modifier la
procédure !

La Commande Kill a été désactivé pour que tu puisses tester la procédure sans difficulté.

'Variable dans le haut du module de ton formulaire
Dim Rg As Range

'-----------------------------------
Private Sub CommandButton2_Click()

Dim Msg, Style, Title, Response, MyString
Dim Ok As Boolean, Chemin As String

Chemin = "c:Monrépertoire" 'à déterminer

Dim Nb As Long, A As Long
Nb = ListBox1.ListCount

For A = 0 To Nb - 1
'si une ligne est séléctionnée
If ListBox1.Selected(A) = True Then
Ok = True
Msg = "Souhaitez vous vraimment supprimer " & _
Me.ListBox1.List(A, 1) & "?" '
'Définit le message.
' Définit les boutons.
Style = vbYesNo + vbCritical + vbDefaultButton2
' Définit le titre.
Title = "supprimer une fiche projet "
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
' L'utilisateur a choisi Oui.
Rg(1).Offset(A).Resize(, 2).Delete
InitialerListBox
'Kill Chemin & Me.ListBox1.List(A, 1) & ".xls"
End If
ListBox1.Selected(A) = False
End If
Next
If Ok = False Then
MsgBox "Vous n'avez pas fait de sélection."
End If
End Sub

'-----------------------------------
Private Sub UserForm_Initialize()

InitialerListBox

End Sub
'-----------------------------------
Sub InitialerListBox()


Dim Tblo As Variant

With Worksheets("Feuil1")
Set Rg = .Range("A1:B" & .Range("A65536").End(xlUp).Row)
Tblo = Rg
End With
With Me.ListBox1
.ColumnCount = Rg.Columns.Count
.List = Tblo
End With
End Sub
'-----------------------------------


Salutations!



"Maud" a écrit dans le message de news:
Bonjour à tous,
alors voilà j'ai un userform qui contient un listbox avec entre autre tout
les noms des fichiers dont j'ai besoin. Je souhaiterais que si on sélectionne
une ligne et que l'on click sur le bouton supprimer un message
d'avertissement apparaisse et si l'utilisateur clique sur oui le fichier
ainsi que d'autres données soit supprimé.Sinon retour au userform.
alors j'ai commencer doucement mais ca coince déjà pouvez vous m'aidez??
Private Sub CommandButton2_Click()

Dim Msg, Style, Title, Response, MyString
FicheProjetbis = ListBox1.Column(2)
If ListBox1.Selected() = True Then 'si une ligne est séléctionnée
Msg = "Souhaitez vous vraimment supprimer " & FicheProjetbis & "?" '
Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "supprimer une fiche projet " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
Kill FicheProjetbis & ".xls"

Else ' L'utilisateur a choisi Non.
UserForm1.Show
End If
Else: MsgBox "Vous devez sélectionner un projet", vbInformation
End If

End Sub

ca coice ici pour l'instant If ListBox1.Selected() = True Then ("argument
non facultatif" qu'il me dit)
mais peut-être que la suite n'est pas mieux!

Merci d'avance







Avatar
michdenis
Bonjour Maud,

Rg(1).Offset(A).Resize(, 2).Delete

Elle prend les 2 cellules (colonne A et B) de la ligne équivalent à celle du Listbox et les supprime.

Pour supprimer la ligne entière :
Rg(1).Offset(a).EntireRow.Delete (xlUp)


Salutations!




"Maud" a écrit dans le message de news:
merci beaucoup j'avais fait quelque chose aussi mais beaucoup moins clair et
lisible!
j'ai juste une question, car je doit ajouter des fonctions: que fait
exactement cette ligne:
Rg(1).Offset(A).Resize(, 2).Delete
si j'ai bien compris elle va dans ma plage prend le texte séléctionné la

collone 2 et l'efface? En fait je souhaiterais effacer la ligne entière!


Ma question s'arrête ici et je vous remercie beaucoup, beaucoup, beaucoup! :-D
en option :
Si vous voulez jeter un oeil à ce qu'une débutante a fait :
Dim Msg, Style, Title, Response, t
Dim nIndex As Integer

nIndex = ListBox1.ListIndex
If ListBox1.Selected(nIndex) = True Then
FicheProjetbis = ListBox1.Column(2)
Msg = "Souhaitez vous vraiment supprimer " & FicheProjetbis & "?"
' Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les
boutons.
Title = "supprimer une fiche projet " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utilisateur a choisi Oui.

'on efface le fichier
Kill "pars0001SapOngoing Live90-projets 'évolution
applicative'Projet Bases ACCES50-Expression de besoinbase plan de charge"
& FicheProjetbis & ".xls"


'on cherche la ligne dans la fiche projets où sont entrées les
données pour les supprimer
For Each t In
Workbooks("Charge_V1").Worksheets("projets").Range("nom_projet_créer")
With
Workbooks("Charge_V1").Worksheets("projets").Range("nom_projet_créer")
Set cLine = .Find(FicheProjetbis, LookIn:=xlValues,
lookat:=xlWhole)
If Not cLine Is Nothing Then
Lignedest = cLine.Row

'On efface la ligne
Workbooks("Charge_V1").Worksheets("projets").Rows(Lignedest &
":" & Lignedest).Clear
End If
End With
Next
'tri du futur contenu de la listbox1

Workbooks("Charge_V1").Worksheets("projets").Range("A3:G200").Sort
Key1:=Workbooks("Charge_V1").Worksheets("projets").Range("A3"),
Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
:úlse, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
'chargement
Load UserForm1

Else ' L'utilisateur a choisi Non.

End If
Else: MsgBox "Vous devez sélectionner un projet", vbInformation
End If



Bonjour Maud,

voici un exemple:

Dans la procédure :
Private Sub CommandButton2_Click()
tu dois définir la variable "Chemin" où sont tes fichiers sur le disque.

dans La procédure Sub InitialerListBox()
Défini le nom de la feuille et la plage de cellules que tu utilises pour ton listbox.
IMPORTANT : tu ne dois pas définir la propriété RowSource de ton Listbox, la procédure s'en charge.

Ces procédures en plus de détruire le fichier de ta listbox, va remettre ta liste à jour dans ta feuillle de données et de même
mettre à jour ta liste affichée dans ton listbox.

Si j'ai bien compris, le nom de ton fichier à détruire se retrouve dans la colonne 2 de ton listbox... sinon faudra modifier la
procédure !

La Commande Kill a été désactivé pour que tu puisses tester la procédure sans difficulté.

'Variable dans le haut du module de ton formulaire
Dim Rg As Range

'-----------------------------------
Private Sub CommandButton2_Click()

Dim Msg, Style, Title, Response, MyString
Dim Ok As Boolean, Chemin As String

Chemin = "c:Monrépertoire" 'à déterminer

Dim Nb As Long, A As Long
Nb = ListBox1.ListCount

For A = 0 To Nb - 1
'si une ligne est séléctionnée
If ListBox1.Selected(A) = True Then
Ok = True
Msg = "Souhaitez vous vraimment supprimer " & _
Me.ListBox1.List(A, 1) & "?" '
'Définit le message.
' Définit les boutons.
Style = vbYesNo + vbCritical + vbDefaultButton2
' Définit le titre.
Title = "supprimer une fiche projet "
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
' L'utilisateur a choisi Oui.
Rg(1).Offset(A).Resize(, 2).Delete
InitialerListBox
'Kill Chemin & Me.ListBox1.List(A, 1) & ".xls"
End If
ListBox1.Selected(A) = False
End If
Next
If Ok = False Then
MsgBox "Vous n'avez pas fait de sélection."
End If
End Sub

'-----------------------------------
Private Sub UserForm_Initialize()

InitialerListBox

End Sub
'-----------------------------------
Sub InitialerListBox()


Dim Tblo As Variant

With Worksheets("Feuil1")
Set Rg = .Range("A1:B" & .Range("A65536").End(xlUp).Row)
Tblo = Rg
End With
With Me.ListBox1
.ColumnCount = Rg.Columns.Count
.List = Tblo
End With
End Sub
'-----------------------------------


Salutations!



"Maud" a écrit dans le message de news:
Bonjour à tous,
alors voilà j'ai un userform qui contient un listbox avec entre autre tout
les noms des fichiers dont j'ai besoin. Je souhaiterais que si on sélectionne
une ligne et que l'on click sur le bouton supprimer un message
d'avertissement apparaisse et si l'utilisateur clique sur oui le fichier
ainsi que d'autres données soit supprimé.Sinon retour au userform.
alors j'ai commencer doucement mais ca coince déjà pouvez vous m'aidez??
Private Sub CommandButton2_Click()

Dim Msg, Style, Title, Response, MyString
FicheProjetbis = ListBox1.Column(2)
If ListBox1.Selected() = True Then 'si une ligne est séléctionnée
Msg = "Souhaitez vous vraimment supprimer " & FicheProjetbis & "?" '
Définit le message.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
Title = "supprimer une fiche projet " ' Définit le titre.
' Affiche le message.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' L'utilisateur a choisi Oui.
Kill FicheProjetbis & ".xls"

Else ' L'utilisateur a choisi Non.
UserForm1.Show
End If
Else: MsgBox "Vous devez sélectionner un projet", vbInformation
End If

End Sub

ca coice ici pour l'instant If ListBox1.Selected() = True Then ("argument
non facultatif" qu'il me dit)
mais peut-être que la suite n'est pas mieux!

Merci d'avance