Macro pour rechercher une référence

  • Initiateur de la discussion Initiateur de la discussion ziban
  • 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 !

Z

ziban

Guest
Bonjour à tous.

Je vais essayer de m'expliquer au mieux, et j'espère que celà vous intérèssera.

J'ai actuellement un fichier excel qui me permet de retrouver une Ref suivant différents paramètres.

Pour exemple, feuill1(nom "voiture"):
Colonne1 : voiture1
Colonne2 : couleur (sélectionnable)
Colonne3 : taille (sélectionnable)
etc... jusqu'à 7 pour le moment

Et plusieurs onglets.

J'utilise pour le moment la solution de "facilitée" qui consiste à appliquer un filtre automatique sur les colonne 2,3,etc

Ainsi, lorsque je sélectionne une couleur le nombre de référence diminue et une fois tous les critères déterminés il me reste qu'une ligne avec la ref qu'il me faut.

J'aimerais rendre ce fichier plus agréable et convivial en y ajoutant une macros et des userforms.

J'ai parcouru pas mal le net et j'ai essayé de bidouiller des exemples mais mon niveau fais que dès que j'essaye d'adapter ces macros je me retrouve avec beaucoup d'erreur que je ne sais corriger ou tout simplement pas de résultat.

C'est pourquoi je vous sollicite en espérant que celà intérèssera du monde.

Merci d'avance 🙂
 
Re : Macro pour rechercher une référence

Voici un exmple de ce que j'ai actuellement.

Ce que je recherche c'est que la "base de données" ne soit plus visible et plutôt remplacer par un userform qui me perméttrer de choisir le "type" de ce que je veux (voiture ou moto) et choisir les caractéristiques (ici les choix1,2,etc).
Une fois les chois fais une boite de dialogue qui m'affiche la Ref et éventuellement (pour plus tard peu être) des solutions de remplacement et un lien vers une brochure.

Voilà j'espère que ça pourra vous aider et surtout vous inspirer.

Merci d'avance.
 

Pièces jointes

Re : Macro pour rechercher une référence

Bonsoir,

Merci pour cet exemple qui m'a permis de comprendre pas mal de chose.

L'idée et bien là mais maintenant je cherche donc à l'adapter à mon application et je n'arrive pas à ajouter des choix supplémentaire sans avoir de bugs.

Je me demande si je dois changer quelque chose ici :

'tri la liste couleur, taille et style
For i = 1 To liste.Count - 1
For j = i + 1 To liste.Count
If liste(i) > liste(j) Then
Swap1 = liste(i)
Swap2 = liste(j)
liste.Add Swap1, before:=j
liste.Add Swap2, before:=i
liste.Remove i + 1
liste.Remove j + 1
End If
Next j
Next i
For Each v In liste
'Controls("Cbx_choix" & col - 1).AddItem v
Controls("ComboBox" & col - 1).AddItem v
Next
'alimente les combobox couleurs, tailles et styles
'Controls("Cbx_choix" & col - 1).ListIndex = -1
Controls("ComboBox" & col - 1).ListIndex = -1
'vide la collection liste
For i = 1 To liste.Count
liste.Remove 1
Next

ou ici:

'tri la liste couleur, taille et style
For i = 1 To liste.Count - 1
For j = i + 1 To liste.Count
If liste(i) > liste(j) Then
Swap1 = liste(i)
Swap2 = liste(j)
liste.Add Swap1, before:=j
liste.Add Swap2, before:=i
liste.Remove i + 1
liste.Remove j + 1
End If
Next j
Next i

J'ai bien compris que le premier choix me fais passer d'une feuille à une autre et les choix suivant filtre les critaires pour donner la ref qui conviens.

Bref mon soucis actuel et de faire évoluer cette macro.
 
Re : Macro pour rechercher une référence

Oui plus de 3 choix, j'ai remarquer en ajoutant des ref qu'elles été prises en compte.

Je vais essayer de faire un exemple plus précis avec les userform pour m'expliquer.

Merci pour les réponses éventuelles, je reviens ^^
 
Re : Macro pour rechercher une référence

Tout à fais mais c'est aussi au fure et à mesure que j'arrive de mieux en mieux à savoir ce que je veux 🙂

Voilà un exemple qui dois être bcp plus parlant.

Merci pour les réponses.
 

Pièces jointes

Re : Macro pour rechercher une référence

En comprenant comment l'actualiser. Je pense 🙁

Le truc c'est que ma "base de données" va être ameneé à évoluer (dans le sens grandire) donc plus de choix etc...

Je cherche surtout dans un premier temps à comprendre comment se construit un filtrage sur plusieurs colonnes avec la possiblitée d'avoir plusieurs répondre "vrai".

C'est à dire qu'une fois la sélection faite je dois me retrouver avec une Ref mais qu'il n'est pas impossible qu'il y est plusieurs Ref qui correspondes.

J'espère que j'embrouille pas trop c'est pas évident quand on débute de s'exprimer clairement.

Merci d'avance pour votre aide.
 
Re : Macro pour rechercher une référence

Pour faire simple je cherche juste à comprendre le code pour faire un trie sur plusieurs colonnes.

Ex:
AAA BB CC
AAA BB CCC
AAA BB CC
AA BB CCC
AA BB CC
AA BBB CC
AA BBB CCC


Si je choisi "AAA" pour le second choix il me reste plus que "BB" puis "CC" ou "CCC"
Si je choisi "AA" pour le second choix il me reste "BB" ou "BBB" et en troisième choix "CC" ou "CCC".

Voilà je fais comme je peux pour d'écrire mon aide.

Merci à toutes les participations.
 
Re : Macro pour rechercher une référence

Re bonjour,

je vais essayé de t'expliquer mon raisonnement (parmis d'autres....).

en sélectionnant un "type", les listes des "choix" se crés automatiquement (ça je crois que tu l'a compris).
Seulement, les colonnes de choix sont actuellement limité à quatres (de la colonne B à D):
Code:
If Cbx_type.ListIndex = 0 Then
    Set feuille = Sheets("voiture")
    [B]For col = 2 To 4 'boucle les colonnes B, C et D
[/B]        Controls("Cbx_choix" & col - 1).Clear 'vide au préalable les combobox couleurs, tailles et styles

Pour ajouter d'autres colonnes, tu as juste a modifier la boucle: "For 2 To 5" par exemple.

De même, le type de véhicule est limité à 2:

Code:
Private Sub Cbx_type_Change()
[B]'si voiture choisi
If Cbx_type.ListIndex = 0 Then
[/B]    [B]Set feuille = Sheets("voiture")[/B]
    For col = 2 To 4 'boucle les colonnes B, C et D
.............
...............
..................
[B]'si moto choisi
ElseIf Cbx_type.ListIndex = 1 Then
[/B]    [B]Set feuille = Sheets("moto")
[/B]    For col = 2 To 4 'boucle les colonnes B, C et D
        Controls("Cbx_choix" & col - 1).Clear 'vide au préalable les combobox couleurs, tailles et styles
        With feuille
........
.........
.........
End If

Donc, si la liste de type passe à 3, ça donne:
Code:
'si voiture choisi
If Cbx_type.ListIndex = 0 Then
    Set feuille = Sheets("voiture")
........
'si moto choisi
ElseIf Cbx_type.ListIndex = 1 Then
    Set feuille = Sheets("moto")
.........
[B]'si vélo choisi
ElseIf Cbx_type.ListIndex = 2 Then
    Set feuille = Sheets("vélo ")[/B]

Voilà le principe.
 
Re : Macro pour rechercher une référence

Pour faire simple je cherche juste à comprendre le code pour faire un trie sur plusieurs colonnes.

Ex:
AAA BB CC
AAA BB CCC
AAA BB CC
AA BB CCC
AA BB CC
AA BBB CC
AA BBB CCC


Si je choisi "AAA" pour le second choix il me reste plus que "BB" puis "CC" ou "CCC"
Si je choisi "AA" pour le second choix il me reste "BB" ou "BBB" et en troisième choix "CC" ou "CCC".

Voilà je fais comme je peux pour d'écrire mon aide.

Merci à toutes les participations.

Re,

donc tu veux que lorsque tu fais un choix dans "couleur" par exemple, la liste de "taille" et "style" se limite à la couleur choisie?
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour