Remplir combobox en fonction du contenu des cellules

Bonjour à tous,

Je viens vers vous car j'ai un problème avec une combobox que je n'arrive pas à régler. J'aurai besoin que ma comboBox2 se remplisse d'une certaine façon suivant ce que j'ai choisi dans la combobox1.

Ma colonne où je vais chercher l'information pour la combobox2 est la liste2 qui contient soit le mot DAE soit ZDA dans les trois premières caractères. Suivant si je choisis DAE ou ZDA dans la combobox1 alors j'aimerai que la combobox2 n'affiche que les cellules commençant par DAE ou ZDA.

Le problème est qu'il me faut absolument identifier les trois premières lettres, je ne peux pas le faire simplement en sélectionnant des plages de cellule.

Je vous met ci-joint le fichier exemple.

Merci d'avance pour votre aide.

Bonjour

Une solution

Merci beaucoup. C'est exactement ce qu'il me faut.

A chaque fois c'est dans le mille 8)

Bonjour,

Je suis actuellement moi aussi entrain de constituer un formulaire.

Et je suis tombé sur votre forum dont le sujet m'interressait enormément.

Malheureusement celui ci ne fonctionne pas dans mon cas.

En effet, je souhaite que ma combobox1 contienne different diametre

Exemple: En attente-04-05-06-08-10-12-16-22-25-27-32 (Colonne AI)

Et que ma combobox2 qui se constitue au fur et a mesure les codes outils

Exemple: En attente - 03 E9304 5801 03100 - 03 E9304 5801 03140 - 04 E9304 5801 04100 - 08 E9304 5801 08140 - 12 E9304 5801 12170 - 16 E9304 5801 16150

J'ai copié votre code:

Private Sub CHOIXDIAM_Change()

Dim NbLg As Long, Cel As Range

Me.CODEATT.Clear

If Me.CHOIXDIAM.ListIndex = -1 Then Exit Sub

Application.ScreenUpdating = False

With Sheets("ListeVerif")

.AutoFilterMode = False

NbLg = .Range("AI" & Rows.Count).End(xlUp).Row

.Range("AI1:AI" & NbLg).AutoFilter field:=1, Criteria1:=Me.CHOIXDIAM & "*"

For Each Cel In .Range("AI2:AI" & NbLg).SpecialCells(xlCellTypeVisible)

Me.CODEATT.AddItem Cel

Next Cel

.AutoFilterMode = False

End With

Application.ScreenUpdating = True

End Sub

Malheureusement, il fonctionne que pour les diametres existant dans la colonne codes outils, si je selectionne un diametre 27, ca bug...

Pouvez vous m'aider

Merci

Bonjour et bienvenu(e)

D'abord ce n'est pas d'usage de squatter un autre post, il faut en créer un (tu y mets la référence à celui-ci si besoin) - Mais pas grave

Le plus important c'est de joindre un fichier dans lequel tu indiques ce que tu as et le résultat que tu veux obtenir

-

Desolé je viens tout juste de m'inscrire, je ne savais pas.

Je vous joins simplement votre fichier avec une ligne supplémentaire (Essai - Copie.xlsm)

61essai-copie.xlsm (17.63 Ko)

Qd on sélection XXX, le tri ne fonctionne plus. Ca bug

Merci


Je ne peut pas joindre mon fichier celui ci est trop gros...1.86Mb

Merci


Sauf si vous pouvez ouvrir ce zip...


Je permet à l'utilisateur de créer les référence au fur et à mesure.

Si celle ci n'existe pas, il l'a rajoute.

Je souhaite que la personne selectionne le type d'attachement, puis le diametre et la combobox CODEATT soit trier en fonction du diametre pour raccourcir la liste qui sera au final très longue.

Mais je ne souhaite pas lorsque l'utilisateur sélection un diametre non repertorié que cela bug ou que cela envoir vers un message box "attention auccun attachement de ce diametre n'hesiste, voulez vous le créer...etc"

Merci

117gestion-greg.7z (161.13 Ko)

Bonjour

Avec ta pléthore d'userform il aurait été judicieux d'indiquer dans lequel cela se passe mal, et surtout les actions à faire pour arriver au plantage

Modifies la macro correspondante

Private Sub CHOIXDIAM_Change()

Dim NbLg As Long, Cel As Range

 Me.CODEATT.Clear
  If Me.CHOIXDIAM.ListIndex = -1 Then Exit Sub

  Application.ScreenUpdating = False
  With Sheets("ListeVerif")
    .AutoFilterMode = False
    NbLg = .Range("AI" & Rows.Count).End(xlUp).Row
    .Range("AI1:AI" & NbLg).AutoFilter field:=1, Criteria1:=Me.CHOIXDIAM & "*"
   If Application.Subtotal(103, .Columns("AI")) > 1 Then
      For Each Cel In .Range("AI2:AI" & NbLg).SpecialCells(xlCellTypeVisible)
        Me.CODEATT.AddItem Cel
      Next Cel
   End If
    .AutoFilterMode = False
  End With
  Application.ScreenUpdating = True

End Sub

Merci ca ne plante plus.

Je vais continuer ce code pour tous les autres attachements.

Si j'ai un soucis. Je peux continuer de poser mes question sur ce post...si c'est le meme sujet?

Merci bcp

Greg

Bonjour

L'usage serait que tu ouvres ton propre post car celui-ci est marqué résolu et que tu ne pas changer cet état

Et pas sur que je puisse répondre à tes nouvelles questions

Donc pour que plus de personnes puissent voir tes soucis il vaut mieux un nouveau post

Bonjour à tous,

Je reviens vers vous car j'aurai souhaité perfectionner cette macro qui m'est bien utile.

En effet je souhaiterai maintenant que les caractères de la liste 1 n'apparaissent pas dans la combobox2. Ainsi nous ne verrions afficher que "divers1" par exemple dans la combobox2 si "DAE" a été sélectionné dans la comboBox 1. Je n'ai pas réussi à trouver de solutions.

Je vous joins le fichier correspondant. Merci pour votre aide.

Bonjour

A vérifier

C'est exactement ce qu'il me fallait. Merci beaucoup et bon week-end.

Rechercher des sujets similaires à "remplir combobox fonction contenu"