VBA - Fonction "Recherche", date "autonome"

Bonjour à tous,

Tâchons de faire simple :

Je suis apprenti dans une entreprise automobile où je suis chargé du traitement des litiges clients (avec mise en place d'actions correctives et tout le toutime!).

Les litiges sont sous format papiers et je les saisie sous Excel (Nom du client, N° de Document, montant, Raisons......) pour pouvoir ensuite en tirer des stats etc...

Dans le cadre de mes études, je devais développer une appli VBA en lien avec mon entreprise.

J'ai donc eu l'idée simple de créer un formulaire de saisie (bien plus pratique que de tout saisir cellule par cellule). Ce dernier se veut "intelligent" sur le papier et doté également d'une fonction "Recherche" permettant de retrouver n'importe quelle litige sur le fichier selon plusieurs critères (N.B : on note les litiges 2015 dans une feuille "2015", ceux de 2014 sont dans une feuille "2014" etc etc...).

Bref, ce fichier n'a pas totalement aboutie étant donné mon faible niveau en VBA -> 12/20 bon ça va..

Là où est le problème, c'est que pour diverses raisons mon projet à pris une ampleur dingue (va être utilisé par toutes les entreprises Française de la Corporation) alors qu'il n'est pas fini ! Le pire? C'est que je fini mon contrat le 30 Aout !

J'aimerai donc dans mon fichier :

- qu'il soit "intelligent" : actuellement le Code VBA ne fonctionne QUE pour la Feuille Excel "2015". Donc lorsqu'on sera en 2016, les données que l'on saisira dans le formulaire seront toujours transférés sur la feuille "2015" (bah oui car j'ai fais du simple "Sheets("2015").Cells(ligne, 7) = datelitige.Text")

- Corriger un petit bug de liste déroulante : Sur le formulaire de saisie, il y a "Client :" avec une liste déroulante. Dans cette liste il y a "Autre". Une case "Précisez : " apparaît et il est alors possible de saisir un nom de client différents de ceux de la liste. Seulement voilà : Imaginons que je fasse "Autre", puis que je tape "AZER" alors que le client c'est "QWER" (QWER est présent dans la liste déroulante). Et bien si je remarque mon erreur et que je souhaite la corriger, je sélectionne alors QWER dans la Liste, la case "Précisez" disparaît, MAIS, au moment de cliquer sur Enregistrer, c'est "AZER" qui se met dans le fichier Excel ^^'

- Ajouter une fonction "Recherche" via une Macro. J'aimerai qu'il soit possible de trouver un litige en fonction de différents critères à renseigner dans un formulaire (montant, client...) et que le résultat s'affiche dans un formulaire (avec par exemple une flèche pour faire défiler le résultat suivant (si par exemple plusieurs litiges ont le même montant). En effet chercher un litige bien précis actuellement se fait via les filtres Excel ^^'

Après ces trois choses, ça sera MERVEILLEUX je pense!!!

J'ai vraiment besoin de vous!

Concernant le fichier, je préfère le transférer par mail (envoyez moi un MP) au vu des données qu'il contient. Il n'y a rien de super confidentielle dedans, mais pas au point de l'afficher en public sur le web non plus. Aucun soucis pour que le code soit copier/coller ici par contre pour aider quelqu'un qui aurait le même problème

Amicalement

Bonjour et bienvenue sur le forum

Pour modifier ton fichier, encore faudrait-il pouvoir y accéder.

Joins-le donc à ton prochain message et s'il est trop gros (>300 k) compresse-le ou passe par http://www.cjoint.com

Bye !

Re-bonjour,

J'ai supprimé tout ce qui pouvait être assez "sensible" comme données normalement..

Voici donc le lien :

https://www.cjoint.com/c/EHrhyRU64sV

En vous remerciant sincèrement d'avance pour l'aide apportée.

A noter qu'il est possible d'utiliser Skype, le téléphone ou n'importe quoi d'autre pour de plus amples explications.

Cordialement

Voilà un premier essai à tester qui devrait répondre aux 2 premiers points de ton message.

Pour ce qui concerne la recherche, je note qu’il y a 21 colonnes dans tes feuilles annuelles. Je suppose que tu ne veux pas, pour chacune, en faire des critères de recherche.

Il faudrait donc que tu dresses la liste exhaustive des critères que tu veux conserver pour ta recherhe.

Bye !

Merci de cette première réponse.

Dans l'absolu si, reste à voir si c'est réalisable. Bon on est d'accord pour dire qu'on va en revanche pas chercher par "commentaire".. ok. Mais pour le reste, pourquoi pas.

J'aimerai que la fonction recherche cherche dans les feuilles Excel en fonction de ce qui est renseigné ou ce qui ne l'est pas.

Par exemple il peut être possible de chercher un litige particulier (dans ce cas je le cherche via le N° SAP, le N° DOC ou encore le Bill Number) tout comme il peut-être possible de chercher un ou plusieurs litiges (exactement comme le font les filtres Excel) : "trouve moi tous les litige Volkswagen d'un montant de 150€ en lien avec la Qualité" par exemple.

Cordialement

Dermo a écrit :

Dans l'absolu si, reste à voir si c'est réalisable.

C’est réalisable. Il suffit d’avoir le courage de créer un UserForm avec 21 combobox et une listbox avec 21 colonnes qui sera difficilement consultable de façon globale.

Mais le plus simple consiste à mettre des filtres sur tes tableaux annuels et d’appliquer l’un après l’autre chacun des critères que tu désires. Pas besoin de macro pour cela.

Bye !

Alors dans ce cas une fonction recherche à un ou deux facteurs peut rester intéressante (exemple : N°SAP et/ou le N° de Document).

UP !

EDIT : Merci beaucoup GMB! J'avais pas vu que tu avais joint le fichier dans ta réponse! Enorme! Ca me débloque vraiment pas mal! Ouf! et ça semble fonctionner ! :p

En revanche peux-tu m'expliquer ce que tu as fais pour le problème de liste déroulante? Il faudrait que je l'applique également pour les autres (service, motif..)! J'aimerai vraiment comprendre et être capable de le refaire

Bonjour

Dermo a écrit :

En revanche peux-tu m'expliquer ce que tu as fais pour le problème de liste déroulante? Il faudrait que je l'applique également pour les autres (service, motif..)! J'aimerai vraiment comprendre et être capable de le refaire

Tout se joue dans la macro ''Enregistrer''

Etudie-la !

Bye !

J'ai trouvé, la solution était vraiment toute bête en faite. Je l'ai donc appliqué aux autres champs et cela fonctionne.

Problème, dans la bataille j'ai perdu deux fonctions !

- Il est désormais possible de mettre "Autre" sans pour autant préciser ce dernier dans le second champs. Normalement, avec mon code, une MsgBox devrait apparaître dans ce genre de situation :

If client.Value = "Other" And "precisezclient" = "" Then

MsgBox ("Merci de préciser le client")

End If

- Deuxième point, on peut également ajouter plusieurs fois le même client dans les données de la feuille déroulante. Normalement, avec le code présent, une MsgBox devrait apparaître si (par exemple) je sélectionne" Autre" dans Client, et que je tape "Renault" dans Précisez alors que ce dernier est déjà présent dans la liste. Le code devrait en théorie me dire "Client déjà renseigné dans la liste". Cela ne fonctionne plus!

Comment corriger cela? Le code (avec mon modeste niveau) me semble pas trop mal mais n'est au final plus du tout fonctionnel

Merci d'avance pour l'aide précieuse que vous m'apportez

Bonjour

Dermo a écrit :

Comment corriger cela? Le code ... me semble pas trop mal mais n'est au final plus du tout fonctionnel

Mais ....où est-il ce code ?

Bye !

https://www.cjoint.com/c/EHunXjlAwJV

C'est vrai qu'avec le fichier, c'est mieux ! ;p

Nouvelle version à tester.

Bye !

Rechercher des sujets similaires à "vba fonction recherche date autonome"