Vérification et mise à jour d'un combobox

Bonjour à tous,

J'ai eu beau chercher une solution mais rien ne fonctionne lors de mes essais.

Dans mon projet (voir les pièces jointes), j'aimerais paramétrer ce qui suit pour le ComboBox "ingredient" :

- Si l'utilisateur n'utilise pas un élément de la liste déroulante alors :

=> Vérifier si l'élément existe dans "DATA" colonne C

=> L'élément existe ?

=> OUI

=> Ne rien faire

=> NON

=> MsgBox : "L'ingrédient n'existe pas dans la base de données. Voulez-vous la mettre à jour ? Y/N"

=> Y

=>Insérer l'élément dans "DATA" colonne C et trier les ingrédient -> A-Z

=> N

=> Ne rien faire

Précision : Je travail sous Excel 2003 SP3

Dans l'attente de vos retours et en vous remerciant par avance

userform sub ingredient
13forum.zip (32.82 Ko)

Bonjour Bandit

Essaie cela :

Private Sub ingredient_AfterUpdate()
Dim Trouve As Boolean
Dim WsData As Worksheet
Set WsData = Worksheets("DATA")
Choix = ingredient.Value
For i = 0 To Me.ingredient.ListCount - 1
    If Me.ingredient.List(i) = Choix Then
        Trouve = True
        Exit Sub
    End If
Next i
'Vérifier si l'élément existe dans "DATA" colonne C
If Application.CountIf(Range("C:C"), Choix) > 1 Then Exit Sub

If MsgBox("Cet ingrédient est inconnu dans la base de données. Voulez-vous la mettre à jour ?", vbYesNo) <> vbYes Then Exit Sub
'Insérer l'élément dans "DATA" colonne C et trier les ingrédient ->
    DLigIngr = WsData.Range("C65536").End(xlUp).Row + 1
    WsData.Cells(DLigIngr, 3) = Choix

    With WsData
          .Sort.SortFields.Clear
           .Columns("C:C").Sort Key1:=.Range("C2"), Order1:=xlAscending, Header:=xlYes
    End With
End Sub

Bon courage

Bonjour Patty,

Merci pour ton investigation et le temps que tu m'as accordé.

Malheureusement cela ne fonctionne pas .... :-(

Je pense que Excel 2003 ne comprend pas ce langage :-/

patty ko
Rechercher des sujets similaires à "verification mise jour combobox"