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

XL 2016 Multiple combobox

plaiiz

XLDnaute Nouveau
Bonjours, la questions va paraitre simple pour vous pro du VBA .
J'ai un fichier qui regroupe tous les prix de fournisseurs sur plusieurs feuille .
J'aimerai réaliser un userform qui me permettre de vérifier le prix de chaque produit lors de la réception de la marchandise.
J'ai reussi a mettre dans mon premier combobox la liste de toute mes feuilles , et dans la deuxième je voudrai qu'elle m'affiche les produits du fournisseur sélectionner précédemment ou je pourrai réaliser une recherche intuitive .
Je vous mes un exemple de mon fichier ce qui sera plus concrets pour vous .
Un grand merci a ceux qui pourront m'aider.
 

Pièces jointes

  • TEST VERIF.xlsm
    67.6 KB · Affichages: 20

youky(BJ)

XLDnaute Barbatruc
Bonsoir Jean Marie,
Très bien vu, mais je ne pense pas que faire la recherche sur d'autres colonnes soit efficace dans notre cas.
Lors de mes essais sur mon fichier je cherchais Mont d'or donc j'écris "mo" j'avais Mont d'or et là il faut mettre la majuscule sinon il trouve pas.
Ou si on cherche Reblochon il faut penser à mettre la Majuscule.
Ma méthode avec Find s'en accommode.
Pour répondre à Plaiiz Oui nombre fournisseurs non limités puisqu'il va chercher sur l'onglet indiqué en combobox1.
A savoir qu'il existe de nombreuses solutions à toi de nous communiquer tes souhaits exacts.
Bruno
 

ChTi160

XLDnaute Barbatruc
Bonsoir Bruno
Effectivement j'ai oublié (car j'ai perdu un fichier Lol)
j'ai remis le Ucase() qui règle le problème de la Case !
VB:
Private Sub cherche_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
'If KeyCode <> 13 Then Exit Sub
x = 0
With Me
    .mylist.Clear
If .cherche = "" Then Exit Sub
StrSearch = UCase(.cherche.Text)'Ici
End With
With Sheets("Commandes " & Me.ComboBox1.Text)
    DerLgn = .Cells(.Rows.Count, 1).End(xlUp).Row
    DerCol = .Cells(3, .Columns.Count).End(xlToLeft).Column
 With .Range(.Cells(4, 1), .Cells(DerLgn, DerCol))
     Tbl_BDD = .Value
 End With
End With
For Lgn = 1 To UBound(Tbl_BDD, 1)
  If UCase(Tbl_BDD(Lgn, 3)) Like "*" & StrSearch & "*" Then 'et Ici'
   x = x + 1
  ReDim Preserve Tbl_Recup(13, x)
  For Col = 1 To 12
  Tbl_Recup(Col, x) = Tbl_BDD(Lgn, Col) 
  Next Col
  Tbl_Recup(13, x) = 3 + Lgn
  End If
Next Lgn
With Me
With .mylist
     .Clear
     .Column = Tbl_Recup
End With
End With
End Sub
je n'ai pas compris
mais je ne pense pas que faire la recherche sur d'autres colonnes soit efficace dans notre cas
Si tu regardes dans le Code je ne fais de recherche que sur la 3 ème Colonne du Tableau !
Code:
If UCase(Tbl_BDD(Lgn, 3)) Like "*" & StrSearch & "*" Then
Bonne continuation
jean marie
 

plaiiz

XLDnaute Nouveau
Ces super ces déjà , super gentil de l’avoir fait pour moi , je ne m’attendais pas à autant de gentillesse de votre part , je vais réfléchir et tester quelque jours voire si je pense à quelque chose qui ne vas pas , quand on recherche œufs sa ne marche pas pck ces oe vous auriez une petite astuce ?
 

ChTi160

XLDnaute Barbatruc
Re
je viens de regarder
effectivement même en utilisant Alt plus 0156 ou Alt plus 0140 ca ne fonctionne pas (le recherche
une solution tu recherches le Calibre Lol
ou tu cherches "ufs"
Bonne fin de Soirée
jean marie
 

plaiiz

XLDnaute Nouveau
J'aurai une autre question , j'aimerai pouvoir verouiller et deverouiller toute les feuilles avec un mots de passe , j'ai trouver ça sur le net
Sub protect_all_sheets()
top:
pass = InputBox("password?")
repass = InputBox("Verify Password")
If Not (pass = repass) Then
MsgBox "you made a boo boo"
Goto top
End If
For i = 1 To Worksheets.Count
If Worksheets(i).ProtectContents = True Then Goto oops
Next
For Each s In ActiveWorkbook.Worksheets
s.Protect Password:=pass
Next
Exit Sub
oops: MsgBox "I think you have some sheets that are already protected. Please unprotect all sheets then running this Macro."
End Sub

ça marche mais je n'arrive pas a déverouiller ensuite , vous auriez une solution ?
 

youky(BJ)

XLDnaute Barbatruc
Ben Jean Marie pour une fois t'es pas cool.
Je sais que la question est récurrente mais bon . . .
Pour Plaiiz
Avant de lancer cette macro il faut qu'aucun onglet ne soit protégé
Dans cette macro remplace "toto" par ton vrai mot de passe
Ensuite lors de l'exécution après avoir indiqué le bon MP cela protège si déprotégé ou inversement.
Cette façon de faire ne permets pas de changer le MP.
Tu pourras toujours retrouver ce MP en cas d'oubli dans les macros, si tu ne verrouilles pas le projet vba
Bruno
VB:
Sub protection()
If InputBox("password?", "Indiquez le Mot de Passe") <> "toto" Then Exit Sub
If Sheets(1).ProtectContents = False Then p = 1
For k = 1 To Sheets.Count
Sheets(k).Unprotect "toto"
If p = 1 Then Sheets(k).Protect "toto"
Next
Feuil1.Select'voir le codename
End Sub
 

ChTi160

XLDnaute Barbatruc
Bonsoir Bruno
Rien de méchant !
Je constate seulement que les questions pleuvent sans que les réponses ne soient attendues.
Donc le "dommage" c'est pour la demande précédente lol
Rechercher "œuf" le "œ" pose problème !
j'ai fait une recherche et j'ai trouvé le moyen de taper le fameux "œ" via deux raccourcis selon que le texte est en minuscule ou majuscule .
Mais bon il est passé aux mots de pass et protect et unprotect. sans me dire ce qu'il n'a pas compris !
Cordialement
Jean marie
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re
Afin de ne pas passer pour un mec pas cool Lol
il faudrait savoir "plaiiz " dans quelle situation tu as besoin de saisir un Mot de pass
souvent les feuilles sont Protégées à l'ouverture du Fichier et ensuite lors de l'utilisation tu peux avoir a déprotéger une feuille pour travailler dessus directement ou via des procédures vba.
donc poste un petit fichier avec des explications de ce que tu as et de ce que tu veux
celà permettra aux contributeurs de mieux te comprendre et donc t'aider !
Cordialement
jean marie
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…