Update combobox

NPY-TBTJ Messages postés 7 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 26 novembre 2014 - 25 nov. 2014 à 16:03
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 26 nov. 2014 à 15:04
Bonjour,

J'ai crée un petit formulaire avec entre-autre un combox (liste des fournisseur). Jusque la il fonctionne correctement.
Le probleme survient quand la liste des fournisseur change. Le combobox ne se met pas a jour et pir, il perd meme certains fournisseur.
J'ai attaché un ptit fichier excel pour mieux me faire comprendre.

Bession d'aide d'urgence.

au fait, ne sachant pas comment joindre un fichier excel ici, alors...
Dans le formulaire Liste des fournisseur j'ai:

Private Sub UserForm_Initialize()
Dim Z As Integer

For Z = 2 To Range("A2").End(xlDown).Row
Me.ComboBox1.AddItem Sheets("Sheet1").Cells(Z, 1)
Next Z

End Sub

Private Sub ComboBox1_Change()
If Me.ComboBox1.Value = "==>Ajout Nouveau Fournisseur" Then
AjoutFsseur.Show
End If
End Sub

Private Sub CommandButton1_Click()
Sheets("Sheet1").Range("C2").Value = Me.ComboBox1
End Sub


Dans le second formulaire Ajout nouveau fournisseur j'ai:

Private Sub CommandButton1_Click()
If AjoutFsseur.TextBox1.Value = "" Then
MsgBox Application.UserName & vbCr & "Donnée manquante. Prière de completer la donnée manquante." & vbCr & vbCr & "Merci", vbExclamation + vbOKOnly, "Informations incompletes"
GoTo FinOK
Else: Call AjouterUnFournisseur
Me.TextBox1.Value = ""
End If

Me.Hide
FinOK:
End Sub


Et enfin dans mon module j'ai:

Sub AjouterUnFournisseur()
' Ajout d'un nouveau fournisseur

Sheets("Sheet1").Select

NouveauFrs = AjoutFsseur.TextBox1.Value

Range("A2").End(xlDown).Offset(1, 0) = NouveauFrs

Range("A2:A100").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

End Sub


Merci d'avance du coup de main

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
25 nov. 2014 à 19:52
Alors :
"mais je m'arrange pour ne pas qu'il y ait des vide"
Ceci serait dans ce cas toujours vrai, y compris si vide (qui serait alors bouché) :
ligne_a_remplir = Range("A2:A" & Rows.Count).SpecialCells(xlCellTypeBlanks).Row

et la plage à lier à ta combo serait alors toujours :
Range("A2:A" & ligne_a_remplir)
non ?
Ceci étant dit : le "lien" n'est à redéfinir qu'après le tri, si tu tries (évident...pour éviter une mise à jour deux fois au lieu d'une seule )
Voilà voilà
tout cela est fort simple.
1
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
25 nov. 2014 à 16:20
Bonjour,
Lie donc ta combobox à la plage de données de ta feuille de calcul.
Elle se mettra automatiquement à jour lorsque tu modifieras la plage que tu redéfinis et à laquelle tu las lies.
Pas besoins, avec cette méthode, d'alimenter la combo par additem en boucle.
Evite par ailleurs de travailler à coups de "select", selection, etc ...
Utilise directement les objets Excel
Range("A2").End(xlDown).Offset(1, 0)
n'est par ailleurs pas forcément la ligne suivant la dernière remplie dans la colonne A ! Ce sera par exemple A4 si A4 est vide et qu'existent ensuite des cellules remplies, de A5 à A# ! (mais c'est là encore autre chose ...)
0
NPY-TBTJ Messages postés 7 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 26 novembre 2014
25 nov. 2014 à 16:40
Merci ucfoutu,
La methode
Range("A2").End(xlDown).Offset(1, 0) 
ne fonctionne pas bien dans une colonne a donnée discontinue mais je m'arrange pour ne pas qu'il y ait des vide.

Par ailleurs, je n'ai pas très bien compris ta réponse pour résoudre mon problème.
:( ;(
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 25/11/2014 à 18:06
Par ailleurs, je n'ai pas très bien compris ta réponse pour résoudre mon problème.

C'est pourtant la seconde fois que je t'en parle.
Quelle suite as-tu donnée à cette discussion :
http://codes-sources.commentcamarche.net/forum/affich-10011115-combobox-datavalidadtion
apparemment laissée en plan ?
Elle te renvoyait à un lien très clair.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
NPY-TBTJ Messages postés 7 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 26 novembre 2014
26 nov. 2014 à 14:01
Merci ucfoutu

Je peux deja fermer le sujet.

;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
26 nov. 2014 à 15:04
Si (comme c'est apparemment le cas) ta difficulté est résolue, c'est en cliquant sur le tag RESOLU au niveau de ton tout premier message dans cette discussion, que tu peux fermer et libérer ce sujet.
0
Rejoignez-nous