Microsoft 365 Aide modification filtre recheche VBA userform

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 !

cedelec

XLDnaute Nouveau
Bonjour

j'ai créé un fichier listing prix, mais je bloque à présent

Je voudrais rajouter 2 chose :
_ Premièrement, je pense la plus simple, mais je sais vraiment pas comment faire, je voudrais que quand on appuie sur tab on passe d'une textbox à l'autre dans l'ordre, en ce moment, cela est complètement désordonné

_ deuxiemement j'aimerai pouvoir aussi faire mes recherche dans les 4 premières textbox, j'ai essayé plusieurs chose, mais ça bug et ça ne filtre vraiment pas

En espérant avoir été assez clair, je vous remercie d'avance pour vos futures réponses.
 

Pièces jointes

Bonjour,

_ Premièrement, je pense la plus simple, mais je sais vraiment pas comment faire, je voudrais que quand on appuie sur tab on passe d'une textbox à l'autre dans l'ordre, en ce moment, cela est complètement désordonné
Il faut donner à tes objets un numéro TabIndex qui corresponde à l'ordre que tu veux leur donner.

Le <Tab> te fait passer, par exemple, du TabIndex 2 au TabIndex 3, ou du 9 au 10.
 
Dernière édition:
Bonjour @cedelec et TFB

Pour les Tabindex c'est très facile
Tu cliques droit sur le fond de ton USF (la partie mauve)

1691673507269.png


Et tu choisis "Ordre de tabulation et tu mets l'ordre que tu veux .....

1691673641737.png


Quelques remarques :
Un tableau structuré avec 16 000 colonnes est ce utile ? Non bien sur
En supprimant 15 980 colonnes inutiles le fichier passe de 740 Ko à ..... 33 Ko et il s'ouvre instantanément au lieu de 30 secondes minimum !!!

De plus un tableau structuré pour y mélanger des carottes et des navets c'est pas top pour pas dire n'importe quoi !
Et ce n'est pas prêt de fonctionner ..... ou très difficilement !!!

Bonne lecture
 
Bonjour @cedelec et TFB

Pour les Tabindex c'est très facile
Tu cliques droit sur le fond de ton USF (la partie mauve)

Regarde la pièce jointe 1176280

Et tu choisis "Ordre de tabulation et tu mets l'ordre que tu veux .....

Regarde la pièce jointe 1176282

Quelques remarques :
Un tableau structuré avec 16 000 colonnes est ce utile ? Non bien sur
En supprimant 15 980 colonnes inutiles le fichier passe de 740 Ko à ..... 33 Ko et il s'ouvre instantanément au lieu de 30 secondes minimum !!!

De plus un tableau structuré pour y mélanger des carottes et des navets c'est pas top pour pas dire n'importe quoi !
Et ce n'est pas prêt de fonctionner ..... ou très difficilement !!!

Bonne lecture
Merci

j'ai du faire une grosse erreur sais pas pourquoi j'ai 16000 colonne
 
J'ai commencé à l'écrire, si ça vous intéresse …
Ça ressemble à ça :
VB:
Option Explicit
Private WithEvents CLs As ComboBoxLiées, CAs As ControlsAssociés, TLgn() As Long, LCou As Long, TVL()
Private Sub UserForm_Initialize() ' initialisation du formulaire
   Set CLs = New ComboBoxLiées: CLs.Plage Feuil2
   Set CAs = New ControlsAssociés: Set CAs.Colonnes = CLs.Colonnes
   CLs.Add Me.CBxNom, "NOM"
   CLs.Add Me.CBxRef, "REFERENCE"
   CLs.Add Me.CBxMarque, "MARQUE"
   CLs.Add Me.CBxCatég, "CATEGORIE"
   CAs.Add Me.TBxPrixA, "PRIX ACHAT"
   CAs.Add Me.TBxCoef, "COEF"
   CAs.Add Me.TBxPrixV, "PRIX DE VENTE"
   CAs.Add Me.TBxMarge, "MARGE"
   CAs.Add Me.TBxDtPxA, "DATE PRIX ACHAT"
   CAs.Add Me.TBxFourn, "FOURNISSEUR"
   CAs.Add Me.TBxNotes, "NOTES"
   CLs.CouleurSympa
   CLs.Actualiser
   End Sub
Function reset_all_controls() ' ???
   CLs.Nettoyer
   End Function
Private Sub CLs_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
   ListBox1.Clear
   ReDim TVL(1 To 1, 1 To CLs.Colonnes.Count)
   CAs.ValeursDepuis TVL
   LCou = 0
   End Sub
Private Sub CLs_Résultat(Lignes() As Long)
   Dim TDon(), LDon As Long, TLBx(), LLbx As Long, C As Integer
   TLgn = Lignes
   If UBound(TLgn) = 1 Then
      LCou = Lignes(1)
      TVL = CLs.Lignes(LCou).Range.Value
      CAs.ValeursDepuis TVL
   Else
      TDon = CLs.PlgTablo
      ReDim TLBx(1 To UBound(TLgn), 1 To CLs.Colonnes.Count)
      For LLbx = 1 To UBound(TLBx, 1): LDon = TLgn(LLbx)
         For C = 1 To UBound(TLBx, 2): TLBx(LLbx, C) = TDon(LDon, C)
         Next C, LLbx
      ListBox1.List = TLBx
      End If
   End Sub
Et comme d'habitude ça a marché du premier coup …
Mais je le joindrai, naturellement, avec les modules de services nécessaires, toujours si ça vous intéresse …
 
J'ai commencé à l'écrire, si ça vous intéresse …
Ça ressemble à ça :
VB:
Option Explicit
Private WithEvents CLs As ComboBoxLiées, CAs As ControlsAssociés, TLgn() As Long, LCou As Long, TVL()
Private Sub UserForm_Initialize() ' initialisation du formulaire
   Set CLs = New ComboBoxLiées: CLs.Plage Feuil2
   Set CAs = New ControlsAssociés: Set CAs.Colonnes = CLs.Colonnes
   CLs.Add Me.CBxNom, "NOM"
   CLs.Add Me.CBxRef, "REFERENCE"
   CLs.Add Me.CBxMarque, "MARQUE"
   CLs.Add Me.CBxCatég, "CATEGORIE"
   CAs.Add Me.TBxPrixA, "PRIX ACHAT"
   CAs.Add Me.TBxCoef, "COEF"
   CAs.Add Me.TBxPrixV, "PRIX DE VENTE"
   CAs.Add Me.TBxMarge, "MARGE"
   CAs.Add Me.TBxDtPxA, "DATE PRIX ACHAT"
   CAs.Add Me.TBxFourn, "FOURNISSEUR"
   CAs.Add Me.TBxNotes, "NOTES"
   CLs.CouleurSympa
   CLs.Actualiser
   End Sub
Function reset_all_controls() ' ???
   CLs.Nettoyer
   End Function
Private Sub CLs_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
   ListBox1.Clear
   ReDim TVL(1 To 1, 1 To CLs.Colonnes.Count)
   CAs.ValeursDepuis TVL
   LCou = 0
   End Sub
Private Sub CLs_Résultat(Lignes() As Long)
   Dim TDon(), LDon As Long, TLBx(), LLbx As Long, C As Integer
   TLgn = Lignes
   If UBound(TLgn) = 1 Then
      LCou = Lignes(1)
      TVL = CLs.Lignes(LCou).Range.Value
      CAs.ValeursDepuis TVL
   Else
      TDon = CLs.PlgTablo
      ReDim TLBx(1 To UBound(TLgn), 1 To CLs.Colonnes.Count)
      For LLbx = 1 To UBound(TLBx, 1): LDon = TLgn(LLbx)
         For C = 1 To UBound(TLBx, 2): TLBx(LLbx, C) = TDon(LDon, C)
         Next C, LLbx
      ListBox1.List = TLBx
      End If
   End Sub
Et comme d'habitude ça a marché du premier coup …
Mais je le joindrai, naturellement, avec les modules de services nécessaires, toujours si ça vous intéresse …
merci

oui cela m'intéresse beaucoup
 
Bonjour.
Il ne manque plus que les ajout, suppression et modification.
Remarque: d'habitude j'utilise un CBnEntrée ayant sa propriété Default à True pour la validation et un CBnEchap ayant sa propriété Cancel à True pour annuler, effacer ou sortir. Voulez vous que je le fasse aussi sur votre fichier ?
 
- 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
5
Affichages
562
Retour