Recherche multicritère VBA

nextrevolution

XLDnaute Occasionnel
JP 14 m'a donné un fichier de recherche multicritères mais lors de quelques modifications ca bogue, j'ai passé 4 heures dessus et comme je suis pas très fort en VBA je m'en remet à vous pour m'aider.

CI joint mon ficher avec mes problèmes qui sont énoncés dedans
 

Pièces jointes

  • Test réservation.zip
    36.8 KB · Affichages: 223
  • Test réservation.zip
    36.8 KB · Affichages: 224
  • Test réservation.zip
    36.8 KB · Affichages: 216

nextrevolution

XLDnaute Occasionnel
Re : Recherche multicritère VBA

Tes codes fonctionnent niquel, merci beaucoup

J'ai d'autres petit soucis.

1) Au niveau de la réservation, la première, le numéro 1 se met, mais la deuxième y a le numéro 3, mais aprés ça se suit, 4 ,5 , 6 ....
C'est juste le 2 qui veut pas.

2) Comment on peux faire pour que dans la date j'ai aussi le nom du jour uqi s'affiche?

3) Lorsque je valide le matériel, il faudrait que au début j'ai le numéro de la réservation et la date qui se mettent devant tout les articles qui ont était validé.

4) J'ai essayé de dépalcer le code qui remplissent les informations de la réservations (date lieux client n°résa) dans la UserForm1 pour qu'il se mettent en place seulement quand je valide la UserForm1.
Ca foncitonne mais au niveau de mettre le Lieu et le Client en majuscule le code ne passe pas

http://cjoint.com/?ecqGcFIkkE
 

jp14

XLDnaute Barbatruc
Re : Recherche multicritère VBA

Bonsoir

Ci joint les userform avec les procédures modifiées
Concernant ces derniers points, je n'ai pas compris le problème, la fonction proper fonctionne correctement, elle met la majuscule au début du nom.
J'ai modifié l'userform2 pour mettre le nom en majuscule.
4) J'ai essayé de dépalcer le code qui remplissent les informations de la réservations (date lieux client n°résa) dans la UserForm1 pour qu'il se mettent en place seulement quand je valide la UserForm1.
Ca foncitonne mais au niveau de mettre le Lieu et le Client en majuscule le code ne passe pas


Ps : il faut décompresser, puis dans l'éditeur VBA supprimer les userforms et importer le document.
JP
 

Pièces jointes

  • UserForm1.zip
    8.4 KB · Affichages: 130
  • UserForm1.zip
    8.4 KB · Affichages: 118
  • UserForm1.zip
    8.4 KB · Affichages: 113
Dernière édition:

nextrevolution

XLDnaute Occasionnel
Re : Recherche multicritère VBA

Tout fonctionne parfaitement comme d'habitude, merci beaucoup

Je vais expliquer mon problème ca sera plus simple qu'expliquer ce que je voulais faire comme code(qui est faux)

Quand je valide ma réservation mais j'ai sélectionné aucun article, il me rentre quand même les références de la réservation. J'aimerais que si je valide la réservation il me dise qu'il faut au moins valider un article.
J'ai essayé ça mais bon ca fonctionne pas

If Me.ListView2.List = "" Then
MsgBox "Vous devez valider au moins un article."
Me.ListView2.SetFocus
Exit Sub
End If



Sinon j'avais mi ça:

MonthView2.MinDate = Now

Pour que je puisse pas valider une valeur dans mon calendrier avant la date du jour de sélection. Mais quand l'UF2 s'ouvre je peux choisir n'importe qu'elle date de mars.
Je pense que c'est à cause de quand j'ouvre ma UF2, la calendrier s'affiche sur la date du 23 mars.

Par contre si c'est possible que lorsqu'il s'ouvre il se mette automatiquement sur la date d'aujourd'hui.
 

jp14

XLDnaute Barbatruc
Re : Recherche multicritère VBA

Bonjour

Ci dessous les codes à modifier
Code:
Private Sub UserForm_Initialize()
With TextBoxResa
    .Value = Application.WorksheetFunction.Max(Sheets("Référence Réservation").Range("a:a")) + 1
    .Enabled = False
End With
[COLOR="Red"]MonthView2.Value = Now
MonthView2.MinDate = Now[/COLOR]
............................................

Code:
Private Sub CommandButton105_Click()
nomfeuille1 = "Matériel Réservé"
'
DerLi = Sheets(nomfeuille1).Range("a65536").End(xlUp).Row + 1
With ListView2
[COLOR="Red"]If .ListItems.Count = 0 Then
    Call MsgBox("Vous devez, avant d'enregistrer, sélectionner du matériel" _
                & vbCrLf & "" _
                , vbInformation, Application.Name)
    
Exit Sub
End If[/COLOR]

    For k = 1 To .ListItems.Count
.....................................

Bonne journée

JP
 

nextrevolution

XLDnaute Occasionnel
Re : Recherche multicritère VBA

Ca fonctionne, merci

Par contre depuis quelques heures je recherche une solution pour que quand telle article (numéro de référence) est réserver à telle date on peu plus sélectionner l'article dans nos réservations pour la même date.

Exemple:
Réservation 1 samedi 04/04/09: Réf.002
Réservation 2 samedi 04/04/09: Réf.002 n'apparait plus dans notre ListView1

Si tu as une piste, ou un code déja crée à adapter. Je vais continuer mais recherche sur google en attendant.

Bonne journée
 

jp14

XLDnaute Barbatruc
Re : Recherche multicritère VBA

Bonjour

Ci dessous la procédure pour résoudre le problème.

Pour éviter de trop modifier les procédures, j'ai simplement rajouté un sous programme qui élimine le matériel déjà loué.

Pour minimiser le temps de traitement j'utilise l'algorithme suivant
Création d'une chaine de caractère qui contient le matériel loué
On vérifie ensuite si le numéro du matériel appartient à cette liste.

A tester
Bonne soirée

JP
 

Pièces jointes

  • UserForm1.zip
    6.5 KB · Affichages: 93
  • UserForm1.zip
    6.5 KB · Affichages: 101
  • UserForm1.zip
    6.5 KB · Affichages: 99

nextrevolution

XLDnaute Occasionnel
Re : Recherche multicritère VBA

Ca fonctionne, y a pas de problème apparemment. Un grand merci

Par contre est ce qu'il existe un code pour empêcher dans notre réservation qu'on prenne deux fois le même article?
Ou simplement un message d’erreur



Je veux faire un retour sur ma UserForm2 mais il bogue
J'utilise cette formule:

Private Sub CommandButton106_Click()
UserForm2.Show
Unload Me
End Sub

Mais apparament comme l'Userform2 est toujours ouverte il veux pas l'afficher, pourtant à l'ouverture de l'UserFrom1 j'ai demandé la fermeture de l'USerForm2
 

jp14

XLDnaute Barbatruc
Re : Recherche multicritère VBA

Bonjour

Ci joint l'userform modifié.
J'ai rajouté un aller retour entre les deux listview.

Un double click transfère de la listview1 vers la listview2 et inversement.
pour faire cette manip j'utilise la clef (key) qui contient le numéro de ligne de la base de données.

A tester

JP
 

Pièces jointes

  • UserForm1.zip
    6.5 KB · Affichages: 76
  • UserForm1.zip
    6.5 KB · Affichages: 75
  • UserForm1.zip
    6.5 KB · Affichages: 74

jp14

XLDnaute Barbatruc
Re : Recherche multicritère VBA

Bonjour (re)

Ci joint l'ensemble des procédures modifiées.
J'utilise des variables publiques pour transférer les données.
Quand on écrit ce code la fermeture de l'usf se fera quand l'userform1 sera fermé, ce qui explique le message d'erreur.
UserForm1.Show
Unload Me

J'ai rajouté un bouton pour ajouter un nouveau client et un bouton pour modifier les données.

A tester

Bonne journée

JP
 

Pièces jointes

  • Module1.zip
    9.2 KB · Affichages: 94
  • Module1.zip
    9.2 KB · Affichages: 98
  • Module1.zip
    9.2 KB · Affichages: 99

nextrevolution

XLDnaute Occasionnel
Re : Recherche multicritère VBA

Ca fonctionne mais ça peut poser des problèmes, enfin on peu avoir une double validation du matériel à la même date où ne pas avoir le matériel disponible. Parce qu'il garde ce qu'on a laissé dans la ListView1 et ListView2 de la première date.

Ce qu’il faudrait c’est lorsqu’on modifie, seulement si la date est changé, faire une RAZ automatique et effacer le matériel dans ListView2.
Et lorsqu’on modifie la date, qu’il y est d’abord un message qui nous dis que le matériel réservé va être remis à zéro, et qu’on puisse choisir Ok ou Annuler avant que la modif soit faite.

En tout cas encore merci pour tout ce que tu as déjà fait, c’est vraiment super.

Je te redonne mais UserForm, si tu peux modifier dessus comme ça j'ai pas besoin de refaire mes modif dessus
 

Pièces jointes

  • userform.zip
    6.3 KB · Affichages: 60
  • userform.zip
    6.3 KB · Affichages: 63
  • userform.zip
    6.3 KB · Affichages: 63
Dernière édition:

jp14

XLDnaute Barbatruc
Re : Recherche multicritère VBA

Bonjour nextrevolution (re)

Il manque des fichiers.
Quand on exporte des userform, le système crée deux fichiers avec comme extension frm fichier qui contient les procédures et frx fichier illisible qui contient le dessin de l'usf.

JP
 

jp14

XLDnaute Barbatruc
Re : Recherche multicritère VBA

Bonjour

Ci dessous le code de la procédure à modifier
Code:
Private Sub CommandButton107_Click()
etat = 2
UserForm2.Show
etat = 0
'Unload Me

If Label15.Caption <> date1 Then
' changement de date
    Call MsgBox("La date a changée, la liste du matériel sélectionné va être supprimée", vbInformation, Application.Name)
    ListView2.ListItems.Clear
    Call rempltest
    Call selection
    flag = True
    Call alimcombo2
    flag = False
Else
    Call rempltest
End If

End Sub

A tester

JP
 

nextrevolution

XLDnaute Occasionnel
Re : Recherche multicritère VBA

Il faudrait juste que sur la message box, on est le Choix entre OK ou Annuler (si on annule on reviens à l'UserForm2 sans aucune modif)

Par contre j'ai essayé de mettre la commande RAZ lorsqu'on modifie, mais ca fonctionne pas, bon au pire faut juste appuyer sur le bouton pour que tout ce remet en place.

En tout cas encore merci pour ce que tu fais
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 071
Membres
104 020
dernier inscrit
Mzghal