Formulaire de recherche

Tahititin

XLDnaute Occasionnel
Bonjour le Forum,
J'ai trouvé sur le forum un code trés pratique et qui m'aiderais dans mon travail (en PJ : RECHERCHE) mais comme je ne suis pas une lumière en VBA, j'ai tenté de l'adapter à mon fichier (également en JJ : PROGRAMME OPERATOIRE GENERAL) mais en vain.
Ce programme opératoire général dispose déjà d'une macro qui va "scanner" les programmes opératoires de chaque spécialité (il y en a 8 en tout) pour en faire une synthèse hebdomadaire toutes spécialités confondus.
Le problème étant que beaucoup de chirurgiens aimeraient pouvoir faire des recherches sur ce programmes opératoire.
Ce que je souhaiterais c'est pouvoir disposer d'un formulaire de recherche (un peu comme l'exemple joint) ou les chirurgiens pourraient effectuer une recherche par nom de patient (colonne B) et/ou Par opérateur (colonne I) et/ou par spécialités (colonne X). Le résultat de la recherche doit aller scanner les 4 ( voire 5) semaines que constitue le mois. Pour plus de lisibilité, les résultats de la recherche ne doivent pas contenir l'ensemble des information d'une ligne mais seulement la date, les nom/prénom du patient, l'age, le sexe, l'opérateur et l'intervention.

J'ai essayé de modifier le code pour l'adapter à ma problématique, mais c'est la première fois que j'utilise un userform... et je vous avoue que je suis un peu perdu. D'ailleurs, si le formulaire de recherche pouvait être fixe sur un onglet "recherche", je pense qu'on y gagnerait en simplicité et donc en compréhension pour mes chères collègues chirurgiens;).

D'avance merci de votre précieuse aide
 

Pièces jointes

  • PROGRAMME OPERATOIRE GENERAL AOUT10.zip
    44.9 KB · Affichages: 95
  • PROGRAMME OPERATOIRE GENERAL AOUT10.zip
    44.9 KB · Affichages: 96
  • PROGRAMME OPERATOIRE GENERAL AOUT10.zip
    44.9 KB · Affichages: 97
  • recherche.zip
    19.8 KB · Affichages: 113
  • recherche.zip
    19.8 KB · Affichages: 115
  • recherche.zip
    19.8 KB · Affichages: 114

job75

XLDnaute Barbatruc
Re : Formulaire de recherche

Bonjour Tahititin, le forum,

On va pas mal se fatiguer à faire l'USF et les macros, alors soyez gentil.

Faites nous un fichier avec une dizaine d'interventions par semaine (2 semaines suffisent) en ajoutant les spécialités (la colonne X est actuellement vide).

A+
 

Tahititin

XLDnaute Occasionnel
Re : Formulaire de recherche

Bonjour Job25
Ci-joint le document demandé.
Les spécialités sont : CHV, CHO, CHN, ENDO, GYN-OBST, Brulés
D'avance merci du temps passé sur mon projet
 

Pièces jointes

  • PROGRAMME OPERATOIRE GENERAL AOUT10.zip
    32.4 KB · Affichages: 110
  • PROGRAMME OPERATOIRE GENERAL AOUT10.zip
    32.4 KB · Affichages: 111
  • PROGRAMME OPERATOIRE GENERAL AOUT10.zip
    32.4 KB · Affichages: 108

job75

XLDnaute Barbatruc
Re : Formulaire de recherche

Bonjour Tahititin, le forum,

Ci-joint votre fichier complété.

Finalement les cellules fusionnées en colonne A c'est très bien, ça facilite la recherche.

Faut se méfier des préjugés :)

Au lieu d'une ListBox j'utilise une ListView, c'est beaucoup plus performant.

Choisir le mois d'août dans la 1ère ComboBox, c'est le seul mois renseigné.

En cliquant sur une ligne de la ListView, on sélectionne la ligne concernée de la feuille de calcul.

Nota : dans le menu Outils-Références de VBA il faut cocher les 2 références :

- Microsoft Windows Common Controls x.x
- Microsoft Visual Basic For Applications Extensibility x.x


A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Formulaire de recherche

Bonjour Tahititin, le forum,

Vraiment désolé pour cette erreur de manip.

Alors voici 2 versions :

- la 1ère où les noms des patients sont recherchés tels qu'ils sont dans la base,

- la 2ème où les noms des patients sont mis en majuscules.

Edit : ajouté une 3ème version qui résoud les fautes d'accents ou de cédilles sur les noms des patients.

Elle utilise cette fonction macro :

Code:
Function ACCENT$(x$)
Dim t1, t2, i As Byte
t1 = Array("à", "â", "ä", "ç", "é", "è", "ê", "ë", "î", "ï", "ô", "ö", "ù", "û", "ü", "ÿ")
t2 = Array("a", "a", "a", "c", "e", "e", "e", "e", "i", "i", "o", "o", "u", "u", "u", "y")
For i = 0 To 15
x = Replace(x, t1(i), t2(i))
Next
ACCENT = x
End Function

A+
 

Pièces jointes

  • PROGRAMME OPERATOIRE GENERAL AOUT10(1).zip
    41.9 KB · Affichages: 88
  • PROGRAMME OPERATOIRE GENERAL AOUT10(2).zip
    42 KB · Affichages: 58
  • PROGRAMME OPERATOIRE GENERAL AOUT10(3).zip
    42.5 KB · Affichages: 86
Dernière édition:

Tahititin

XLDnaute Occasionnel
Re : Formulaire de recherche

Bonjour Job75,
J'ai testé et je n'aurais qu'un mot : MAGIQUE ! c'est exactement ce que je recherchais... ENORME !
Par contre j'ai fais mon travail de "copier coller" : L'onglet "recherche", le Useform1, la ligne de code dans l'onglet recherche, la ligne de code dans le woorkbook... Tout quoi ! Et quand je clique sur le bouton recherche j'ai une erreur de compilation (type défini par l'utilisateur non défini) à la ligne
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem) 'au clic dans la ListView.
Je pense que j'ai du faire une mauvaise manip mais aprés plusieurs essai, j'ai toujours le même message d'erreur.

Dernière chose : Mes programmes opératoires sont classés par mois : j'ai un dossier Aout2010 dans lequel j'ai tous les fichiers programmes par spécialité (8) et un fichier programme opératoire général (celui que je t'ai envoyé) qui synthètise l'ensemble des programmes par spécialité (et qui fera des recherches bientôt j'espère ;-)). Crois-tu qu'il soit possible de faire des recherches avec le formulaire sur plusieurs mois ?

Encore un grand merci pour ton aide précieuse
 

Tahititin

XLDnaute Occasionnel
Re : Formulaire de recherche

Job75,
J'ai fais plusieurs test et visiblement il y a un conflit avec les macros qui existait déjà sur mon fichier "PORGRAMME OPERATOIRE GENERAL", en plus du soucis que je t'ai exposé sur mon dernier message, lorsque j'intègre l'onglet "recherche dans le PORGRAMME OPERATOIRE GENERAL, j'ai un message d'erreur : Débogage Erreur d'exécution 1004 à la ligne suivante : x.Range("A3").CurrentRegion.Offset(2, 0).Sort Key1:=x.Range("A3"), Order1:=xlAscending, Key2:=x.Range(ColServ), Order2:=xlAscending, Header:=xlYes
Pourtant il ne s'agit que de mise en forme et de tri (par odre de date).

J'avoue que je ne saisi pas tout

Je te joins le fichier complet avec les macros

A+
 

Pièces jointes

  • PROGRAMME OPERATOIRE GENERAL AOUT10.zip
    44.8 KB · Affichages: 107
  • PROGRAMME OPERATOIRE GENERAL AOUT10.zip
    44.8 KB · Affichages: 108
  • PROGRAMME OPERATOIRE GENERAL AOUT10.zip
    44.8 KB · Affichages: 111

job75

XLDnaute Barbatruc
Re : Formulaire de recherche

Bonjour Tahititin, le forum,

Pour ceci :

j'ai une erreur de compilation (type défini par l'utilisateur non défini) à la ligne
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem) 'au clic dans la ListView.

voir le Nota de mon post #5.

Pour le reste, je ne peux rien dire, mais je ne vois pas pourquoi ça interférerait avec vos macros.

A+
 

Staple1600

XLDnaute Barbatruc
Re : Formulaire de recherche

Bonsoir

Prétexte à saluer job75 (salutations ;) )

Voici d'autres d'accents à supprimer (et une tite variante)

Code:
Const AA As String = "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ"
Const SA As String = "AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy"
Code:
Function noaccent(chaine$) As String
For i = 1 To Len(AA)
chaine = Replace(chaine, Mid(AA, i, 1), Mid(SA, i, 1))
Next i
noaccent = chaine
End Function
Code:
Sub a()
MsgBox noaccent("Bérangère dort chez sa mère")
End Sub
 

Tahititin

XLDnaute Occasionnel
Re : Formulaire de recherche

Bonjour Job75,
J'ai oublié de t'en parler dans mes derniers posts mais je n'ai pas trouvé le "Microsoft Windows Common Controls x.x" dans la liste des références VBA. J'ai bien trouvé le "Microsoft Visual Basic For Applications Extensibility x.x" mais pas l'autre.
J'utilise Excel 2007, mais j'enregistre tout sous 97-2003 afin que tous les utilisateurs et collègues puissent utiliser les documents.

J'ai encore fait des tests ce WE et j'ai toujours les même soucis
 

job75

XLDnaute Barbatruc
Re : Formulaire de recherche

Bonsoir Tahititin,

Chez moi (Excel 2003) la référence est notée Microsoft Windows Common Controls 6.0 (SP6).

Certainement faut-il avoir téléchargé SP6 lors des mises à jour.

La référence est indispensable, sinon supprimer la macro, et la sélection dans la ListView n'aura plus d'effet :(

A+
 

Tahititin

XLDnaute Occasionnel
Re : Formulaire de recherche

Re Job75,
Ce qui m'intrigue, c'est que les fichiers que tu m'a envoyé dans ton post #7 fonctionnent à la perfection sur mon Excel 2007 et le "Microsoft Windows Common Controls 6.0 (SP6)" apparait bien dans les références. Par contre, impossible de le retrouver dans une page vierge EXCEL. Est-èil possble d'enregistrer ses paramètres de références avec un docuement (dans le même paquet) ?
 

Discussions similaires

  • Question
Microsoft 365 Recherche V
Réponses
5
Affichages
342

Statistiques des forums

Discussions
312 231
Messages
2 086 452
Membres
103 215
dernier inscrit
anass moufik