Recherche de la bonne combinaison

alb05

XLDnaute Occasionnel
Bonjour
Quelle est la meilleure méthode pour retrouver la bonne combinaison selon des critères (ou cases à cocher) ?
La fonction RECHERCHEV a ses limites dans ce cas. Mais je ne vois pas trop quelle formule utiliser dans ce cas ?

merci
 

Pièces jointes

  • Finitions.xls
    16 KB · Affichages: 87

job75

XLDnaute Barbatruc
Re : Recherche de la bonne combinaison

Rebonjour alb05,

Je n'avais plus le temps ce matin, voici le fichier avec la date de mise à jour.

Elle esr affichée en bas de l'USF dans un Label, et stockée par le nom défini MAJ qui est masqué.

Un complément d'explication important : vous remarquerez que les macros ne font référence qu'à des plages nommées.

Ces plages sont dynamiques, voir au menu Insertion-Nom-Définir. Aucune adaptation des codes n'est nécessaire, et l'on peut nommer les feuilles comme on veut.

A+
 

Pièces jointes

  • Finitions USF(2).zip
    40.5 KB · Affichages: 17
Dernière édition:

job75

XLDnaute Barbatruc
Re : Recherche de la bonne combinaison

Re,

Il y avait un problème si les bases de données Base et Marque sont vides (au départ).

J'ai modifié la définition :

Code:
=DECALER(BASE!$A$2:$J$2;1;;[COLOR="Red"]MAX[/COLOR](NBVAL(BASE!$A:$A)-1;[COLOR="red"]1[/COLOR]))

Et 2 ou 3 autres choses.

A+
 

Pièces jointes

  • Finitions USF(3).zip
    46.3 KB · Affichages: 17
Dernière édition:

alb05

XLDnaute Occasionnel
Re : Recherche de la bonne combinaison

Bonsoir,
c'est excellent. merci.

1/ Comment accéder à MAJ qui est masqué ?

2/ pouvez vous regarder, svp, comment avoir un module de recherche sur les différents champs stockés ?
Exemple :
a) Quelles sont les voitures équipées au minimum d'une DA et d'une FC
b) Quelles sont les voitures équipées strictement d'une DA et d'une FC

merci encore.
 

job75

XLDnaute Barbatruc
Re : Recherche de la bonne combinaison

Re,

Pour démasquer le nom caché MAJ, exécuter le code :

Code:
ThisWorkbook.Names("MAJ").Visible = True 'False pour masquer

Pour la recherche voyez ce fichier sur cijoint.fr.

Même zippé, il est en effet trop gros (55 ko), mais si quelqu'un a une autorisation supérieure, merci de le déposer sur le fil :)

L'UserForm de recherche contient 2 boutons d'options et 2 ComboBox pour les choix.

Il s'ouvre en non modal, ce qui permet d'accéder à la feuille pendant qu'il est ouvert.

Le principe est simple : seules les lignes qui répondent aux critères sont affichées, les autres sont masquées.

A la fermeture de l'UserForm, tout s'affiche (macro QueryClose).

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Recherche de la bonne combinaison

Bonsoir jeanpierre et merci :)

Juste un code à paufiner, dans la macro Recherche de l'UserForm2, remplacer :

Code:
If ComboBox1 = "" Then ComboBox1.SetFocus: Exit Sub
If ComboBox2 = "" Then ComboBox2.SetFocus: Exit Sub
If Len(ComboBox1) = 1 Then ComboBox1 = "": Exit Sub
If Len(ComboBox2) = 1 Then ComboBox2 = "": Exit Sub

par

Code:
If Len(ComboBox1) = 1 Then ComboBox1 = ""
If Len(ComboBox2) = 1 Then ComboBox2 = ""
If ComboBox1 = "" Or ComboBox2 = "" Then Exit Sub

Bonne nuit.
 

job75

XLDnaute Barbatruc
Re : Recherche de la bonne combinaison

Bonjour le fil, le forum,

Voici une 2ème version de recherche.

Dans l'UserForm j'ai ajouté les boutons Sauvegarde et Fermer.

J'ai aussi créé les macros des OptionButtons, c'est mieux.

La feuille RECHERCHE récupère la sauvegarde. On pourrait en mettre 2 (une par option).

Le fichier sur cijoint.fr.

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Recherche de la bonne combinaison

Re,

Je reviens en arrière, il y avait une imprécision pour la date de mise à jour.

J'ajoute la macro DateMAJ sur les 3 derniers fichiers déposés (dans le code de UserForm1) :

Code:
Private Sub DateMAJ()
ThisWorkbook.Names.Add "MAJ", "Mise à jour : " & Format(Now, "dd/mm/yy hh:mm")
ThisWorkbook.Names("MAJ").Visible = False
Label3 = [MAJ]
End Sub

A+
 

alb05

XLDnaute Occasionnel
Re : Recherche de la bonne combinaison

Bonjour,
très bien pour ce bouton de recherche
mais serait il possible d'avoir les 10 options mais également un critère avec la marque :
exemple :
quelles sont les WV avec DA+VE+FC+PMI ....
merci et bonne journée
 

job75

XLDnaute Barbatruc
Re : Recherche de la bonne combinaison

Bonjour alb05, le forum,

Voici une recherche globale.

L'UserForm utilisé est le même que pour la Création/Suppression, le fichier est donc moins lourd que précédemment.

Noter que les 2 boutons Création/Suppression et Recherche définissent la variable menu déclarée Public dans le Module1.

A+
 

Pièces jointes

  • Finitions Recherche globale(1).zip
    43.8 KB · Affichages: 17

job75

XLDnaute Barbatruc
Re : Recherche de la bonne combinaison

Re,

Là c'est vraiment pour le fun :)

J'ai ajouté 2 Labels pour réduire et agrandir l'UserForm.

Avec les 2 boutons l'USF s'ouvre en non modal.

A+
 

Pièces jointes

  • Finitions Recherche globale(2).zip
    42 KB · Affichages: 15
Dernière édition:

job75

XLDnaute Barbatruc
Re : Recherche de la bonne combinaison

Re,

Ce topic peut être clos.

Pas tout à fait...

Si le fichier est destiné à être utilisé par plusieurs utilisateurs, se posera le problème de la protection de la feuille.

Dans toutes les versions précédentes, il y aura en effet des bugs (c'est normal) si la feuille "BASE" est protégée.

Dans le fichier ci-joint cette feuille est protégée par le mot de passe alb05 et voici ce qu'il faut faire.

1) sur la feuille non protégée, menu Insertion-Nom et définir le nom MDP par ="alb05"

2) Dans le code de la feuille introduire la macro :

Code:
Sub OterProtection()
Dim v
On Error Resume Next
v = Range("Base").Parent.Unprotect
If v = "" Then MsgBox "Mot de passe incorrect !", 48: End
If v = False Then End
End Sub

Cette macro est appelée par chacun des 2 boutons.

3) Dans la macro de fermeture de l'UserForm :

Code:
Private Sub UserForm_QueryClose(cancel As Integer, closemode As Integer)
flag = True
Range("Base").EntireRow.Hidden = False
[COLOR="Red"]On Error Resume Next 'si le nom MDP n'existe pas
Range("Base").Parent.Protect [MDP][/COLOR]
End Sub

EDITION : on peut bien sûr ne pas demander le mot de passe pour les utilisateurs autorisés. Il faudra une liste de leurs noms dans le fichier.

De toute façon vous pouvez utiliser cette version en supprimant le nom MDP.

De plus j'ai simplifié la macro Recherche (supprimé la variable plage0 inutile en fait).

Le masquage du nom MAJ a été mis en commentaire (macro DateMAJ).

A+
 

Pièces jointes

  • Finitions avec protection(1).zip
    39.8 KB · Affichages: 18
Dernière édition:

alb05

XLDnaute Occasionnel
Re : Recherche de la bonne combinaison

bonjour,

EDITION : on peut bien sûr ne pas demander le mot de passe pour les utilisateurs autorisés. Il faudra une liste de leurs noms dans le fichier..

1/ comment déclarer cette liste ?

2/ comment récupérer le nom de l'utilisateur ?

3/ Pour tracer qui a fait la maj d'un enregistrement, l'idéal serait d'enregistrer dans chaque ligne de la base le nom du dernier utilisateur à avoir mis à jour le modèle, ainsi que la date et heure à laquelle cette maj s'est faite.

=> cela revient à ajouter 2 colonnes dans la base (à insérer entre B "modèle" et C "Finition")
col A MARQUE
col B MODELE
col C Last_User
col D Last_UpDATE
col E FINITION
... / ...

RQ : Après avoir saisie le mot de passe pour accéder aux UF, l'accès à la feuille est libre, ce qui peut paraitre normal dans un sens mais qui du coup fait fit de tous les contrôles éventuels gérés par programme dans les UF.
Mais bon, cela ne me pose pas plus de problème que ça, donc laissez tomber.
 

Discussions similaires

Réponses
30
Affichages
1 K
Réponses
5
Affichages
394
Réponses
2
Affichages
87

Statistiques des forums

Discussions
312 497
Messages
2 088 992
Membres
104 000
dernier inscrit
dinelcia