Aide : Recherche de cellule spécifique depuis Userform.

Cyroul

XLDnaute Nouveau
Bonjour tout le monde

Je suis actuellement en stage, dans le cadre de mes études, dans une grande société d'ambulances du sud de la France.

Après avoir vu que j'avais quelques (et j'insiste sur le quelques) notions en VBA, un responsable m'a confié une mission à remplir : optimiser la saisie d'un tableau grâce à un Userform. En effet, avant toute la saisie de ce tableau se faisait directement par Excel.
La majeure partie de cette tache a été réalisé. Cependant il me reste le dernier point que je n'arrive pas à éclaircir et sur lequel je m'arrache les cheveux depuis maintenant 1 semaine.

Le tableau excel se présente sous la forme d'une base de donnée de clientèle. On retrouve donc la date et l'heure de saisie, un numéro de dossier, un nom, un prénom, une ville de prise en charge, un secteur correspondant à cette ville, un délai théorique (45 minutes ou 2 heures) et une société d'ambulance.

La saisie de ces informations a été programmée sur mon Userform.

Le problème que je rencontre est le suivant :

L'utilisateur peut retrouver, sur le userform, (grace au numero de dossier) les informations correspondantes (celà aussi a été programmé), mais il doit aussi rentrer de nouvelles informations : heure de fin heure d'arrivée, l'état de la mission (réalisé, sortie blanche ou annulée).
En cas d'annulation ou de sortie blanche, l'utilisateur doit attribuer une carence (de délai ou de moyen) et attribuer un numéro de carence.

Ces modifications que l'utilisateur doit faire seront saisies dans le userform et doivent être reportées dans les cellules reservées à ces modifications (déjà présentes dans le tableau excel).

Je joint le début de mon travail ainsi qu'un fichier word expliquant (grâce à une capture d'écran) quel est mon problème.

Merci pour votre aide et pour vos réponses.
 

Pièces jointes

  • Explications.docx
    220.8 KB · Affichages: 66
  • Explications.docx
    220.8 KB · Affichages: 72
  • Explications.docx
    220.8 KB · Affichages: 73
  • Nouveau dossier compressé.zip
    168.6 KB · Affichages: 86
  • Nouveau dossier compressé.zip
    168.6 KB · Affichages: 85
  • Nouveau dossier compressé.zip
    168.6 KB · Affichages: 86

ERIC S

XLDnaute Barbatruc
Re : Aide : Recherche de cellule spécifique depuis Userform.

Bonjour

je pense qu'il faut que tu récupères le n° de ligne avec


myVar = Application.WorksheetFunction _
.Match(numérodedossier, Worksheets(1).Range("A1:A1000"), 0)

après tu stockes tes variables en fonction des colonnes :

range("C" & myvar).value =...
 

Cyroul

XLDnaute Nouveau
Re : Aide : Recherche de cellule spécifique depuis Userform.

J'ai tenté d'adapter la formule que tu m'as transmis. Mais bien entendu (comme la plupart du tenps en vba), celà ne fonctionne pas.
Un message d'erreur s'affiche : "Impossible de lire la propriété Match de la classe WorksheetFunction.

Pourrais tu m'éclaircir sur cette énigme ?

Merci de ton aide.
 

Cyroul

XLDnaute Nouveau
Re : Aide : Recherche de cellule spécifique depuis Userform.

Il est certain qu'un exemple vaut mieux que des informations trop complexes. Je te remerci donc pour cette illustration.
Cependant, en prenant exemple sur ce que tu viens de m'envoyer (qui est exactement ce que je recherche), je reçois toujours le même message d'erreur.
Pourtant ma formule est la suivante (et me semble valide) :

Private Sub Modif_click

Myvar=Application.WorksheetFunction_
.Match(Val(Combobox1.Value), Sheets("Essai").Range("C4:C2499"),0)

Range ("G" & myvar).Value=Délai.Value

End Sub

L'erreur pourrait elle venir d'une autre fonction ?

Pour voir le contexte, je re-joint mon document avec la formule (visiblement éronnée) intégrée dans ma macro.

Quoi qu'il en soit merci pour tes réponses et le temps que tu consacres à mon projet.

Cyril
 

Pièces jointes

  • Centre 15.zip
    159 KB · Affichages: 62

jp14

XLDnaute Barbatruc
Re : Aide : Recherche de cellule spécifique depuis Userform.

Bonjour

Une autre solution
Utiliser la formule suivante au niveau du nom de la zone Dossier : =DECALER(Essai!$C$4;;;NBVAL(Essai!$C:$C)-2) cette formule permet de définir la plage qui contient les données.

Au lieu d'utiliser la fonction EQUIV utiliser la relation qui existe entre la valeur de ListIndex du combobox et le numéro de ligne.

Listindex = 0 pour le premier élément ce qui correspond à la ligne 4

JP
 

Cyroul

XLDnaute Nouveau
Re : Aide : Recherche de cellule spécifique depuis Userform.

JP, je te remercie pour ta solution.
Le probleme étant que je voudrais essayer de ne pas passer par une programmation de la feuille excel. Sur ce projet, le but est de ne faire que du VBA (d'où cet appel à l'aide^^)

Je te remercie de ton message.
Toute solution est bonne à prendre.
 

jp14

XLDnaute Barbatruc
Re : Aide : Recherche de cellule spécifique depuis Userform.

Bonjour

Il n'y a pas de programmation dans la feuille excel, la formule se trouve dans la définition du nom de la zone, nom qui est utilisé pour remplir le combobox propriété RowSource.

JP
 

jp14

XLDnaute Barbatruc
Re : Aide : Recherche de cellule spécifique depuis Userform.

Bonjour

En rentrant une plage avec des cellules vides le combobox affichera les données et les cellules vides, si on utilise la formule on affichera que les cellules qui ont des données.

=DECALER(Essai!$C$4;;;NBVAL(Essai!$C:$C)-2)

Cette formule permet de définir une plage de données qui part de la cellule 4 à la cellule 4 + nb de cellules non vide - 2 ( nombre de cellules non vide dans la zone située au dessus de la cellule 4)

JP
 
Dernière édition:

Cyroul

XLDnaute Nouveau
Re : Aide : Recherche de cellule spécifique depuis Userform.

JP,
Tout d'abord merci pour tes informations.

Est-ce normal que lorsque je rentre cette formule dans la case Row Source, un message d'erreur m'indique : "Impossible de définir la propriété RowSource. Valeur de Propriété non valide". Sachant que j'ai recopier la formule telle que décrite ci dessus dans ma case Row Source.
 

jp14

XLDnaute Barbatruc
Re : Aide : Recherche de cellule spécifique depuis Userform.

Bonjour

Il faut la mettre dans la définition du nom
Menu Insertion, nom , définir

JP
 

Pièces jointes

  • Centre 15 new 97 (Réparé).xls
    161.5 KB · Affichages: 154
Dernière édition:

Cyroul

XLDnaute Nouveau
Re : Aide : Recherche de cellule spécifique depuis Userform.

Merci JP.

Je trouve ta solution interessante, cependant ce qu'avait présenté Eric précédemment est plus en accord avec l'objectif que je souhaite remplir.
Je préfererais plus développer l' Application.WorksheetFunction.Match(qui ne marche toujours pas).

Je te remercie du temps que tu m'as accordé. Si vous avez des infos sur cette application je suis preneur.

Cyril
 

ERIC S

XLDnaute Barbatruc
Re : Aide : Recherche de cellule spécifique depuis Userform.

Re

en fait tes numéros sont au format texte, essayer :

Code:
myvar = Application.WorksheetFunction _
.Match(ComboBox1.Text, Sheets("Essai").Range("C1:C2499"), 0)

je n'ai pas testé complètement mais si tes numéros peuvent être des nombres ou des textes, peut-être

Code:
On Error Resume Next
myvar = Application.WorksheetFunction _
.Match(Val(ComboBox1.Text), Sheets("Essai").Range("C1:C2499"), 0)
myvar = Application.WorksheetFunction _
.Match(ComboBox1.Text, Sheets("Essai").Range("C1:C2499"), 0)

mais là, j'avoue ne pas utiliser on error donc méfiance
 

Statistiques des forums

Discussions
312 203
Messages
2 086 193
Membres
103 153
dernier inscrit
SamirN