VBA Combobox
Résolu/Fermé
hglp
Messages postés
14
Date d'inscription
vendredi 26 juin 2015
Statut
Membre
Dernière intervention
4 septembre 2015
-
26 juin 2015 à 18:31
hglp Messages postés 14 Date d'inscription vendredi 26 juin 2015 Statut Membre Dernière intervention 4 septembre 2015 - 30 juin 2015 à 08:30
hglp Messages postés 14 Date d'inscription vendredi 26 juin 2015 Statut Membre Dernière intervention 4 septembre 2015 - 30 juin 2015 à 08:30
3 réponses
hglp
Messages postés
14
Date d'inscription
vendredi 26 juin 2015
Statut
Membre
Dernière intervention
4 septembre 2015
26 juin 2015 à 18:37
26 juin 2015 à 18:37
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
Modifié par PlacageGranby le 26/06/2015 à 19:10
Modifié par PlacageGranby le 26/06/2015 à 19:10
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
hglp
Messages postés
14
Date d'inscription
vendredi 26 juin 2015
Statut
Membre
Dernière intervention
4 septembre 2015
29 juin 2015 à 08:27
29 juin 2015 à 08:27
En effet ! Ca marche nickel désormais, Merci de m'avoir débloqué je n'y avais pas pensé !
hglp
Messages postés
14
Date d'inscription
vendredi 26 juin 2015
Statut
Membre
Dernière intervention
4 septembre 2015
29 juin 2015 à 11:28
29 juin 2015 à 11:28
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
PlacageGranby
Messages postés
393
Date d'inscription
mercredi 26 mars 2014
Statut
Membre
Dernière intervention
7 mars 2019
26
29 juin 2015 à 16:36
29 juin 2015 à 16:36
Bonjour,
A première vue, êtes-vous sur que Plage est défini au moment ou vous affectez Cell avec find ?
A première vue, êtes-vous sur que Plage est défini au moment ou vous affectez Cell avec find ?
hglp
Messages postés
14
Date d'inscription
vendredi 26 juin 2015
Statut
Membre
Dernière intervention
4 septembre 2015
30 juin 2015 à 08:30
30 juin 2015 à 08:30
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, ...)