XL 2013 Envoie d'une valeur issue d'une combobox vers une liste

dilack

XLDnaute Junior
Bonjour à tous,

J'ai un code qui devrait envoyer une valeur issue d'une combobox vers une liste qui est sur une feuille "DATA".
J'ai beau chercher je n'arrive pas à retomber sur mes pattes.
J'ai systématiquement une erreur:

"Erreur d'exécution 1004" - "Erreur définie par l'application ou par l'objet"

nota: le "Then" est bien placé dans le code il n'y a pas de retour chariot

Je vous laisse le code et la feuille de calcul

Merci d'avance pour vos réponses

Code:
Private Sub cbxDomaine_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'Ajout données dans la liste Domaine
  If IsError(Application.Match(Me.cbxDomaine, Worksheets("DATA").Range("DOMAINE"), 0)) And Me.cbxDomaine <> "" Then
     Worksheets("DATA").Range("DOMAINE").End(xlDown).Offset(1, 0) = Me.cbxDomaine
     Worksheets("DATA").Range("DOMAINE").Sort key1:=Range("DOMAINE")(1)
    End If
End Sub
 

Pièces jointes

  • Docs_Techniques_temp.xlsm
    34 KB · Affichages: 22
  • Docs_Techniques_temp.xlsm
    34 KB · Affichages: 24

thebenoit59

XLDnaute Accro
Re : Envoie d'une valeur issue d'une combobox vers une liste

Bonjour dilack.

Une proposition possible :

Code:
Private Sub cbxDomaine_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'Ajout données dans la liste Domaine
    If cbxDomaine.Text <> "" Then
        If Not dDom.exists(cbxDomaine.Text) Then
            With Sheets("Data")
            .Cells(.[a65000].End(xlUp).Row + 1, 1).Value = cbxDomaine.Text
            End With
        End If
    End If
End Sub

Pour que ça fonctionne, déclare dDom avant toutes les procédures de ton userform et ajoute le code suivant dans l'initialisation de ton UF.

Code:
 tempA = Application.Transpose(f.Range("A2:A" & f.[a65000].End(xlUp).Row))
  '-----------
  Set dDom = CreateObject("scripting.dictionary") 'création d'un dictionnaire pour enregistrer les valeurs
  For i = LBound(tempA) To UBound(tempA): dDom(tempA(i)) = "": Next i
  '-----------
  Call tri(tempA, LBound(tempA), UBound(tempA))
 

thebenoit59

XLDnaute Accro
Re : Envoie d'une valeur issue d'une combobox vers une liste

Je te joins le fichier, tu as peut-être mal placé la déclaration de dDom.
J'en ai profité pour modifier la procédure de validation.
 

Pièces jointes

  • Docs_Techniques_temp.xlsm
    31.2 KB · Affichages: 23
  • Docs_Techniques_temp.xlsm
    31.2 KB · Affichages: 27

dilack

XLDnaute Junior
Re : Envoie d'une valeur issue d'une combobox vers une liste

Merci avec ton fichier cela fonctionne.
Je comprends pas j'ai exactement le même code que toi sur "Private Sub UserForm_Initialize()" et cela ne fonctionne pas sur mon fichier.
ça proviens sans de ta modif sur la validation faut que je regarde ça.
 

Discussions similaires

Réponses
5
Affichages
210
Haut Bas