Message box sous condition
Bonjour,
Comment modifier ce code pour afficher la messagebox seulement si il y a une valeur dans la combobox ?
If sel Is Nothing Then
Else
Sheets("Lexique").Activate 'ouvre la feuille concernée
sel.Activate 'active la cellule concernée
If MsgBox("Voulez-vous supprimer : " & Me.ComboBox1 & " ? ", _
vbExclamation + vbYesNo, "Modification") <> vbYes Then Exit Sub 'message de demande de vérification
sel.ClearContents 'efface la valeur
sel.ClearComments 'efface l'image en commentaire
ComboBox1 = "" 'vide la comboxBonjour
On a pas assez d'indications pour donner une réponse valable
Sel c'est quoi ?
Placez le code complet ce sera plus simple
Crdlt
Bonjour Dan, voici le code complet ...
j'ai créé 3 combobox qui reprennent les éléments du lexique pour pouvoir supprimer une valeur de la liste
J ai essayé de bricoler ce code😏 , j aimerai avoir la messagebox seulement sur la ou les combobox avec une valeur sélectionnée par l utilisateur
Private Sub CommandButton6_Click() 'recherche dénomination et supression dans lexique
Dim sel As Range
Set sel = Sheets("Lexique").Cells.Find(Me.ComboBox1.Value, , xlValues, xlWhole) 'recherhce dans la feuille la valeur renseigné dans la textbox
Set sel2 = Sheets("Lexique").Cells.Find(Me.ComboBox2.Value, , xlValues, xlWhole) 'recherhce dans la feuille la valeur renseigné dans la textbox
Set sel3 = Sheets("Lexique").Cells.Find(Me.ComboBox3.Value, , xlValues, xlWhole) 'recherhce dans la feuille la valeur renseigné dans la textbox
On Error Resume Next
If sel Is Nothing Then
Else
Sheets("Lexique").Activate 'ouvre la feuille concernée
sel.Activate 'active la cellule concernée
If MsgBox("Voulez-vous supprimer : " & Me.ComboBox1 & " ? ", _
vbExclamation + vbYesNo, "Modification") <> vbYes Then Exit Sub 'message de demande de vérification
sel.ClearContents 'efface la valeur
sel.ClearComments 'efface l'image en commentaire
ComboBox1 = "" 'vide la combox
End If
If sel2 Is Nothing Then
Else
Sheets("Lexique").Activate 'ouvre la feuille concernée
sel2.Activate 'active la cellule concernée
If MsgBox("Voulez-vous supprimer : " & Me.ComboBox2 & " ? ", _
vbExclamation + vbYesNo, "Modification") <> vbYes Then Exit Sub 'message de demande de vérification
sel2.ClearContents 'efface la valeur
ComboBox2 = "" 'vide la combox
End If
If sel3 Is Nothing Then
Else
Sheets("Lexique").Activate 'ouvre la feuille concernée
sel3.Activate 'active la cellule concernée
If MsgBox("Voulez-vous supprimer : " & Me.ComboBox3 & " ? ", _
vbExclamation + vbYesNo, "Modification") <> vbYes Then Exit Sub 'message de demande de vérification
sel3.ClearContents 'efface la valeur
ComboBox3 = "" 'vide la combox
End If
'If MsgBox("Voulez-vous supprimer les informations " & Me.ComboBox1 & "-" & Me.ComboBox2 & "-" & Me.ComboBox3 & " ?", vbQuestion + vbYesNo, "Modification") <> vbYes Then Exit Sub
MsgBox "Supréssion élément(s)éffectué", vbInformation, strValidationapp 'message a la fermeture de l userform
End Sub
Mon code n est pas top lorsque je supprime une valeur la modification se met a jour seulement apres relance de l userform et il laisse un blanc dans la liste ou a u lieu la suppression
Mouais, sans voir le fichier ce n'est pas simple. Mais testez ceci pour voir
Private Sub CommandButton6_Click() 'recherche dénomination et suppression dans lexique
Dim sel As Range
Dim i as byte
For i = 1 To 3
On Error Resume Next
Set sel = Sheets("Lexique").Cells.Find(Me.Controls("ComboBox" & i).Value, , xlValues, xlWhole) 'recherche dans la feuille la valeur renseignée dans la textbox
If Not sel Is Nothing Then
If MsgBox("Voulez-vous supprimer : " & Me.Controls("ComboBox" & i) & " ? ", vbExclamation + vbYesNo, "Modification") <> vbYes Then Exit Sub 'message de demande de vérification
With sel
.ClearContents
If i = 1 Then .ClearComments
End With
Me.Controls("Combobox" & i) = vbNullString
End If
Next i
MsgBox "Suppression élément(s)effectué", vbInformation, strValidationapp 'message a la fermeture de l userform
End subCrdlt
Le code fonctionne mais toujours le même problème si je ne sélectionne qu’une combobox j’ai 3 messages 1 avec l’info choisi dans la combobox et 2 message sans valeur saisie
Le fichier est en pj le code est dans l userform ajout lexique il concerne les combo en page 2
Mieux avec le fichier ...
Essayez comme ceci
Private Sub CommandButton6_Click() 'recherche dénomination et suppression dans lexique
Dim sel As Range
Dim i As Byte
For i = 1 To 3
On Error Resume Next
Set sel = Sheets("Lexique").Cells.Find(Me.Controls("ComboBox" & i).Value, , xlValues, xlWhole) 'recherche dans la feuille la valeur renseignée dans la textbox
If Not sel Is Nothing And sel <> vbNullString Then
If MsgBox("Voulez-vous supprimer : " & Me.Controls("ComboBox" & i) & " ? ", vbExclamation + vbYesNo, "Modification") <> vbYes Then Exit Sub 'message de demande de vérification
With sel
If i = 1 Then .ClearComments
.Delete 'ClearContents
End With
MsgBox "Suppression élément(s) " & Controls("Combobox" & i) & " effectué", vbInformation 'message a la fermeture de l userform
Me.Controls("Combobox" & i) = vbNullString
End If
Next i
End SubOn met Delete à la place de Clearcontents. Cela permet de ne pas avoir des vides dans vos colonnes
Si ok ...pensez à
Cordialement
Ca fonctionne a merveille comme toujours 👍
Merci
Est il possible de rajouter une initialisation des combobox dans ce code (sans passer par initialize)
parce qu apres suppression l'élément est toujours présent dans la liste de la combo box jusqu'à prochaine relance de l userform
REM : Attention que dans cette USF, le code Combobox1 change ne sert à rien puisque vous n'avez pas de combobox dans l'onglet Page1
Donc le code Private Sub ComboBox1_Change() est à supprimer et ce, d'autant que lorsque vous supprimez un article via l'onglet Page2, le code est exécuté à tord
Pour la suppression juste en dessous de Msgbox "Suppression éléments........, remplacez
Me.Controls("Combobox" & i) = vbNullStringPar
With Me.Controls("Combobox" & i)
.RemoveItem (Me.Controls("Combobox" & i).ListIndex)
.Value = vbNullString
End WithNB : reste toujours votre case à cocher pour la relance dont on n'avait déjà parlé sur un autre fil. Cela ne sert pas puisqu'une fois validé les combox sont vidées des infos. Donc aussi à supprimer dans votre code Valider
parfait merci j ai également supprimer
Combobox1 change