Je voudrai ajouter ces trois conditions citées ci-dessous à la ligne résultant du calcul suivant
Code:
f.[D65000].End(xlUp).Row
Si = 11 : la liste est vide ==> ne rien faire
Si = 12 : il n'y a qu'un élément ==> le mettre dans choix 1
Si > 12 : on crée la liste avec un transpose qui met la plage dans choix1
Voici mon code dans ça totalité
Code:
Public Sub UserForm_Initialize()
Set f = Sheets("liste_Fournisseurs")
choix1 = Application.Transpose(f.Range("d12:D" & f.[D65000].End(xlUp).Row))
Me.ComboBox1.List = choix1
End Sub
Re : Besoin de completer une macro on lui ajoutant trois conditions
Bonsoir à tous
Une possibilité
Code:
Public Sub UserForm_Initialize()
Dim f As Worksheet, choix1, nbl&
Set f = Sheets("liste_fournisseurs")
nbl = f.[D65000].End(xlUp).Row
Select Case nbl
Case Is < 12
Exit Sub
Case 12
Me.ComboBox1.AddItem f.Range("D12")
Case Else
choix1 = Application.Transpose(f.Range("D12:D" & nbl))
Me.ComboBox1.List = choix1
End Select
End Sub
je me suis basé sur que tu as écris dans ton premier message
Si on a un seul fournisseur ( donc en D12), la comboxbox n'aura qu'un élement
Si la liste est vide (donc rien en D2 et plus bas), alors la comboxbox est vide
Si la liste en [noparse]D12X[/noparse] n'est pas vide alors le combobox contient les valeurs de [noparse]D12X[/noparse]
Re : Besoin de completer une macro on lui ajoutant trois conditions
Merci pour la réponse
Oui faute d'inattention de ma part maintenant que ce problème est apparu je reformule ma question avec le fichier joint précédemment
Si y a rien de D12 jusqu'à DX il se passe rien ça je pense c'est résolu
et que faudra t-il changer au code pour dire
Si le premier fournisseur est ajouté (bien entendu ça sera en D12) alors affiche le dans le combobox ainsi que les fournisseurs suivants bien évidement
Re : Besoin de completer une macro on lui ajoutant trois conditions
bonjour staple1600,rigueiro, infinity100 et le forum
j'ai modifié le code comme ceci
Code:
Private Sub ComboBox1_Change()
If Me.ComboBox1.ListIndex = 1 And IsError(Application.Match(Me.ComboBox1, Choix1, 0)) Then
Me.ComboBox1.List = Filter(Choix1, Me.ComboBox1.Text, True, vbTextCompare)
Me.ComboBox1.DropDown
End If
End Sub
car le bug donnait que la combobox est = -1 donc j'ai enlever le signe - devant le 1 la 1ère ligne du code et c'est mieux
le fornisseur s'ajoute, mais ce n'est peut etre pas ce qu'il faut faire
Re : Besoin de completer une macro on lui ajoutant trois conditions
Bonjour grisan29
Merci pour la réponse et bien oui en enlevant le (-) à coté du 1 ça fixe le premier bug mais le deuxième persiste toujours d'autant plus sans le (-1) quand j'ajoute le 1er fournisseur ça bug toujours en tapant la 1ere lettre de son nom dans le Combo Box en plus au clique sur la flèche du Combo Box je trouve ce nom répété 3 fois dans la liste du Combo Box.
Re : Besoin de completer une macro on lui ajoutant trois conditions
bonsoir infinity100, staple1600
le fichier que je t'ai mis dans le post #11 a la combobox qui déroule tous les fournisseurs et non le même et ce fichier est celui que tu as mis dans ta réponse #10
Re : Besoin de completer une macro on lui ajoutant trois conditions
bonsoir Pascal
Merci pour la réponse mais je crois qu'on c pas bien compris donc je m'explique
* Si on change le -1 par 1 la saisie semi-automatique ne fonctionnera plu alors qu'elle est primordiale pour mon fichier
* Si on garde le -1 tel qu'il est les deux bug cités dans mon premier fichier joint (c'est à dire quand la liste des fournisseur est vierge)
Donc voila mon souci avec la macro c'est quand la liste des fournisseur est vierge c'est là que les bug se manifestent