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 combox

Bonjour

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 sub

Crdlt

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

10logiciel-v7-2.zip (327.43 Ko)

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 Sub

On 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) = vbNullString

Par

With Me.Controls("Combobox" & i)
    .RemoveItem (Me.Controls("Combobox" & i).ListIndex)
    .Value = vbNullString
End With

NB : 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

Rechercher des sujets similaires à "message box condition"