VBA Combobox
Résolu
hglp
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
hglp Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
hglp Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
3 réponses
Bonjour,
Aussi, je ne suis pas trop sur de l'utilisation des IF.
IF question = oui then
on fait le code
else
on ne fait rien
end if
Tu met le code après le end if, donc il est toujours exécuté.
La solution est soit d'entrer le code à l'intérieur de ton IF, ou de rajouter un exit sub pour interrompre l'exécution de cette macro.
Aussi, je ne suis pas trop sur de l'utilisation des IF.
IF question = oui then
on fait le code
else
on ne fait rien
end if
Tu met le code après le end if, donc il est toujours exécuté.
La solution est soit d'entrer le code à l'intérieur de ton IF, ou de rajouter un exit sub pour interrompre l'exécution de cette macro.
If MsgBox(Prompt:="Confirmez-vous l'insertion d'un nouveau client ?", Buttons:=vbYesNo, Title:="Confirmation d'ajout") = vbYes Then l = Ws.Range("a65536").End(xlUp).Row + 1 Else exit sub 'exit sub va empêcher le reste de la macor de s'exécuter si on click non End If For Each Cell In Ws.Range("A2:A" & Ws.Range("A65536").End(xlUp).Row) If Me.Controls("LstCode") = Cell.Value Then MsgBox "Ce Code est déjà réservé à un client, Veuillez rentrer un autre code." exit sub 'Exit sub va empêcher le reste de la macro de s'exécuter. si le code est déja réservé End If Next Cell
Il ne me reste qu'un détail à régler pour finaliser mon application. Cela concerne la procédure pour supprimer un client. Je voudrais pouvoir supprimer un client (donc toute les informations de sa ligne dans l'excel) à partir de la sélection de son code client dans la combobox.
J'ai essayé ce code sans succès: Y a t-il un autre méthode ?
Private Sub CommandButton3_Click()
Dim Cell As Range
If MsgBox("Confirmez-vous ... Du client ?", vbYesNo) = vbYes Then
Set Cell = Plage.Find(LstCode.Value)
Cell.EntireRow.Delete
LstCode.RemoveItem LstCode.ListIndex
LstCode.Value= ""
Set Plage = Range ([A1], [A65536].End(x1Up))
End If
End Sub
J'ai essayé ce code sans succès: Y a t-il un autre méthode ?
Private Sub CommandButton3_Click()
Dim Cell As Range
If MsgBox("Confirmez-vous ... Du client ?", vbYesNo) = vbYes Then
Set Cell = Plage.Find(LstCode.Value)
Cell.EntireRow.Delete
LstCode.RemoveItem LstCode.ListIndex
LstCode.Value= ""
Set Plage = Range ([A1], [A65536].End(x1Up))
End If
End Sub
non ça ne l'était pas j'ai trouvé une autre solution qui fonctionne :
Ws.Rows(Columns(1).Find(Me.LstCode, Range("A1")).Row).Delete
Si j'ai bien compris : Dans la colonne 1 de la feuille (désignée pas Ws), on va rechercher le code choisi dans la combobox après la ligne 1 et on la supprime.
Avec Expression.Find(What; After, LookIn, ...)
Ws.Rows(Columns(1).Find(Me.LstCode, Range("A1")).Row).Delete
Si j'ai bien compris : Dans la colonne 1 de la feuille (désignée pas Ws), on va rechercher le code choisi dans la combobox après la ligne 1 et on la supprime.
Avec Expression.Find(What; After, LookIn, ...)