Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA index equiv dans userForm

  • Initiateur de la discussion Initiateur de la discussion NAIM
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

NAIM

Guest
Bonjour
,J'ai un userform et je souhaite remplir le COMBOBOX1 et le COMBOBOX 2 et le résultat s'affiche dans le textbox1 en cherchant les infos dans d'une feuille ci-joint PJ
 

Pièces jointes

Bonjour
,J'ai un userform et je souhaite remplir le COMBOBOX1 et le COMBOBOX 2 et le résultat s'affiche dans le textbox1 en cherchant les infos dans d'une feuille ci-joint PJ en plus je n'arrive pas a remplir le combobox 1
Merci pour votre aide.
 

Pièces jointes

Bonjour.
VB:
Option Explicit
Private Sub UserForm_Initialize()
   ComboBox1.RowSource = ""
   ComboBox1.List = WorksheetFunction.Transpose([REF])
   End Sub
Private Sub ComboBox1_Change()
   AfficheRésu
   End Sub
Private Sub ComboBox2_Change()
   AfficheRésu
   End Sub
Private Sub AfficheRésu()
   If ComboBox1.MatchFound And ComboBox2.MatchFound Then
      TextBox1.Text = Format([PRIX].Item(ComboBox2.ListIndex + 1, ComboBox1.ListIndex + 1).Value, "0.00 €")
   Else
      Me.TextBox1.Text = ""
      End If
   End Sub
 
Chez moi les listes des 2 ComboBox sont renseignées.
Renommez les de façon claire CBxRef et CBxCode. Ne leur mettez pas de propriété RowSource mais garnissez leur List avec les valeurs de plages nommées. Pour celle disposée horizontalement utilisez WorksheetFunction.Transpose, sinon il ne considère que sa seule 1ère ligne.
En ayant fait tout ça dans votre classeur par chance resté ouvert, le code modifié ainsi marche toujours :
VB:
Option Explicit
Private Sub UserForm_Initialize()
   CBxCode.List = [CODE].Value
   CBxRef.List = WorksheetFunction.Transpose([REF])
   End Sub
Private Sub CBxRef_Change()
   AfficheRésu
   End Sub
Private Sub CBxCode_Change()
   AfficheRésu
   End Sub
Private Sub AfficheRésu()
   If CBxRef.MatchFound And CBxCode.MatchFound Then
      TextBox1.Text = Format([PRIX].Item(CBxCode.ListIndex + 1, CBxRef.ListIndex + 1).Value, "0.00 €")
   Else
      Me.TextBox1.Text = ""
      End If
   End Sub
 
Dernière édition:
Vous pourriez aussi faire comme ça :
VB:
Option Explicit
Private RngPrix As Range
Private Sub UserForm_Initialize()
   Set RngPrix = [prix_]
   ComboBox1.RowSource = ""
   ComboBox2.RowSource = ""
   ComboBox1.List = WorksheetFunction.Transpose(RngPrix.Rows(0))
   ComboBox2.List = RngPrix.Columns(0).Value
   End Sub
Private Sub ComboBox1_Change()
   AfficheRésu
   End Sub
Private Sub ComboBox2_Change()
   AfficheRésu
   End Sub
Private Sub AfficheRésu()
   If ComboBox1.MatchFound And ComboBox2.MatchFound Then
      TextBox1.Text = Format(RngPrix.Item(ComboBox2.ListIndex + 1, ComboBox1.ListIndex + 1).Value, "0.00 €")
   Else
      Me.TextBox1.Text = ""
      End If
   End Sub
Personnellement je n'utilise jamais la propriété RowSource des ComboBox.
 
Bonjour DRANREB,
Encore moi je ne comprends pas c'est mon niveau debutant qui persiste, pourriez vous me résoudre ce PB car je teste ça fonctionne sur certain ligne par pour l'ensemble. exemple pour le poids de 5 Kg il ne fonctionne pas ????
Merci beaucoup.
 

Pièces jointes

Quel UserForm il faut regarder ?
Pour le Mode_chrono-international il y a un nom "DBD_prix_euro" dont la référence est =#REF!#REF!. Il n'est pas le seul: il y aurait un sacré ménage à faire dans le gestionnaire de noms !
 
Et dans l'autre vous avez interverti les rôles respectifs de la 1ère ligne et de la 1ère colonne. Bon, ce sera ma dernière intervention, si vous ne suivez pas mes recommandations. Au lieu de les appeler ComboBox7 et ComboBox8 appelez les CBxPoids et CBxType bon sang !
Moi je change toujour partout la 1ère propriété (Name) de tous les objets VBA, et du coup je fais rârement ce genre d'erreur.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
310
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
491
  • Question Question
XL 2019 User Form
Réponses
9
Affichages
443
Réponses
8
Affichages
346
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…