Gestion base données excel pour commerciaux

PERSEVERANT

XLDnaute Junior
Bonsoir à toutes et tous,
je me suis lancé dans un projet, pour faciliter le travail de mes collaborateurs, qui dépasse mes capacités en informatiques. Je viens donc sur ce forum chercher l'aide de gens bien plus compétents que moi.

Mon sujet est le suivant, créer une base de données sous excel 2010, dont vous trouverez ci-joint le modèle, qui permette à des commerciaux de faire des devis et de les modifier au gré des fantaisies de leurs clients.

La base se crée dans un onglet BD alimenté en seconde ligne par les saisies faites dans l'onglet Saisie.
Un onglet Consultation permet de revoir et de modifier, si besoin en est, les données déjà renseignées.
Cet onglet consultation doit pouvoir afficher des données déjà existantes dans l'onglet BD. J'utilise pour celà la fonction index.

Et c'est la que les choses se corsent pour moi.

Je voudrais pouvoir accéder à un enregistrement précis dans BD pour alimenter toutes mes cellules de Consultation. Ma base étant alimentée tout au long de la journée, elle n'est donc pas triée. Je pensais pouvoir sélectionner cet enregistrement précis au travers de 3 critères, le Nom du client, la Date de départ et la Destination. Mais je suis incapable de mettre en place les formules qui me permettraient d'avoir 3 listes déroulantes en cascade pour filtrer mes enregistrements de BD. Le Nom des clients revient plusieurs fois, il me faut donc une liste déroulante sans doublon. Cette première sélection devrait me permettre de créer une seconde liste déroulante avec les Dates de départ correspondant uniquement au client sélectionné, et au cas ou il y aurait plusieurs devis avec le même client à la même date de finir la sélection par la Destination.

Une fois ces trois critères définis, je ne devrais plus avoir qu'un seul enregistrement correspondant à mes besoins, je pourrais alors récupérer le N° de l'enregistrement pour alimenter mes diverses cellules.

Suis-je déraisonnable en pensant que tout ceci est réalisable ? J'évite autant que faire se peux le VBA, mais si je dois y passer...

Par avance merci de vos remarques et suggestions, je patauge depuis deux semaines et n'ai pas su résoudre mon problème.

Cordialement
PERSEVERANT
 

Pièces jointes

  • test base de données tourisme.xlsm
    123.6 KB · Affichages: 116
  • test base de données tourisme.xlsm
    123.6 KB · Affichages: 62

ChTi160

XLDnaute Barbatruc
Bonjour PERSEVERANT
Bonjour le Fil ,"Dranreb" ,Le Forum
Comme le laisse entendre Dranreb , pas logique ,car comment à partir de la feuille gérer des éléments multiples .
Exemple : je sélectionne la Date du 08/03/2016 , je stocke ou ? les différentes réponses ,pas dans la feuille .
donc il faudrait définir le Critère à partir du quel afficher la réponse unique si réponse Unique lol
je ne sais pas si je me fais comprendre. Lol
la Recherche devrait donc être orientée , Dabord : le Client puis , la Date et la Destination ,pour affichage dans la feuille . si pas dans l'ordre pas possible .
Ce qui limite la recherche que permet "l' Objet ComboBoxLiées" de Dranreb .
enfin moi je travaille à une autre méthode mais toujours via un Userform .
dans l'attente
Bonne journée
Amicalement
Jean marie
 
Dernière édition:

PERSEVERANT

XLDnaute Junior
Bonjour PERSEVERANCE
Bonjour le Fil ,"Dranreb" ,Le Forum
Comme le laisse entendre Dranreb , pas logique ,car comment à partir de la feuille gérer des éléments multiples .
Exemple : je sélectionne la Date du 08/03/2016 , je stocke ou ? les différentes réponses ,pas dans la feuille .
donc il faudrait définir le Critère à partir du quel afficher la réponse unique si réponse Unique lol
je ne sais pas si je me fais comprendre. Lol
la Recherche devrait donc être orientée , Dabord : le Client puis , la Date et la Destination ,pour affichage dans la feuille . si pas dans l'ordre pas possible .
Ce qui limite la recherche que permet "l' Objet ComboBoxLiées" de Dranreb .
enfin moi je travaille à une autre méthode mais toujours via un Userform .
dans l'attente
Bonne journée
Amicalement
Jean marie

Bonjour à tous,

Bonjour ChTi160,
Je note le "si pas dans l'ordre pas possible".
S'il n'y a que ça je peux toujours inclure dans la macro un tri de la base avant de faire la suite.
Pour ce qui est de stocker, je ne pense pas en avoir besoin, mes infos sont dans la base, je veux juste pouvoir trouver le N° de ligne ou d'enregistrement et par le biais d'INDEX je remplirai mes cases.
Pour ce qui est de la recherche, en effet il faut d'abord sélectionner le Client (sans doublon pour limiter la liste déroulante), ensuite pour le client choisi uniquement proposer les dates (sans doublon) et enfin toujours uniquement pour ce client et la date sélectionnée, la destination (s'il y en a plusieurs ce qui peut être possible).

Bonjour Dranreb,
je ne cherche pas spécialement à déplacer les ComboBox, je cherche à comprendre (et à faire) comment mes collaborateurs accèdent à la sélection qu'ils doivent faire. S'ils ont les ComboBox que j'ai placées dans la feuille, je sais comment ils font, puisqu'elles sont sous leurs yeux ; si ça passe par l'UserForm il doit falloir faire une manipulation (laquelle ?) pour qu'ils y accèdent, je ne sais pas, lancer la macro par exemple, auquel cas il faut que je crée un bouton macro et que j'y affecte la macro correspondante... Je suis très basique, mais ça n'est pas aussi simple qu'il y paraît pour moi.

Cordialement
Persévérant
 

ChTi160

XLDnaute Barbatruc
Re
PERSEVERANT ,je pense que l'on ne s'est pas compris quand je parle de : "si pas dans l'ordre pas possible".
Ce n'est pas le tri de la Base ,mais l'ordre dans lequel effectuer la recherche via les Combobox .
puis le Stockage , c'est lorsque tu recherches via une Date Unique (dans le Combobox) ,il peut y avoir dans la base de données plusieurs lignes avec cette Date , Idem pour le Client et la Destination . donc le stockage de toutes ces lignes qui répondent à un Critère , puis à deux , puis enfin à trois , cela ce fait dans une ListBox ou une ListView , au fur et à mesure des sélections dans les différents Combobox .
je ne sait pas si j'ai été plus Clair ! Lol
dès que j'ai une proposition je poste
Bonne continuation
Amicalement
Jean marie
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Oui, un bouton c'est pas mal.
Soit un bouton de formulaire auquel on affecte une macro qui affiche l'UserForm,
Soit un bouton ActiveX dont c'est le code associé qui le fait.
Vous pouvez aussi prévoir son affichage lors de l'activation d'une feuille si vous voulez.

Bien que je pense qu'il vaudrait mieux tout afficher dans des contrôles de l'UserForm, il serait possible d'obtenir un résultat provisoire assez rapide en ajoutant cette procédure :

VB:
Private Sub CL_BingoUn(ByVal Ligne  As Long)
CL.PlgTablo.Rows(Ligne).Name = "LBD"
End Sub
Ça permettrait en effet des formules genre :
Code:
=$A:$A LBD

Pourquoi ne feriez vous pas subir à votre BD une mise sous forme de tableau ?
Ça vous permettrait de supprimer tout ces noms apportés manuellement au profit des titres des colonnes du tableau.
Surtout qu'alors l'objet ComboBoxLiée reconnait l'objet ListObject qui représente ce tableau et reconnait aussi les titres des colonnes:
VB:
Option Explicit
Private WithEvents CL As CBxL.ComboBoxLiées

Private Sub UserForm_Initialize()
Set CL = CBxL.Création.ComboBoxLiées
CL.Plage Feuil3
CL.Add Me.CBxNomClient, "Client"
CL.Add Me.CBxDateDépart, "Date Départ"
CL.Add Me.CBxDestinat, "Destination"
CL.CouleurSympa
CL.Actualiser
End Sub

Private Sub CL_BingoUn(ByVal Ligne As Long)
CL.PlgTablo.Rows(Ligne).Name = "LBD"
End Sub

La formule pourrait devenir pour C4 :
Code:
=Tableau1[Vendeur] LBD
 
Dernière édition:

PERSEVERANT

XLDnaute Junior
Re
PERSEVERANT ,je pense que l'on ne s'est pas compris quand je parle de : "si pas dans l'ordre pas possible".
Ce n'est pas le tri de la Base ,mais l'ordre dans lequel effectuer la recherche via les Combobox .
puis le Stockage , c'est lorsque tu recherches via une Date Unique (dans le Combobox) ,il peut y avoir dans la base de données plusieurs lignes avec cette Date , Idem pour le Client et la Destination . donc le stockage de toutes ces lignes qui répondent à un Critère , puis à deux , puis enfin à trois , cela ce fait dans une ListBox ou une ListView , au fur et à mesure des sélections dans les différents Combobox .
je ne sait pas si j'ai été plus Clair ! Lol
dès que j'ai une proposition je poste
Bonne continuation
Amicalement
Jean marie

Bonjour Jean Marie
Oui c'est plus clair en effet.
C'est bien mon problème, j'ai le même client qui revient (heureusement d'ailleurs) plusieurs fois dans l'année, et peut demander pour une même date plusieurs devis, d'ou la troisième sélection sur la destination qui elle sera unique pour un client et une date.
Je comprends cette notion de stockage intermédiaire, je ne sais pas la faire, mais je comprends le principe.
Merci
Jean Michel
 

PERSEVERANT

XLDnaute Junior
Bonjour.
Oui, un bouton c'est pas mal.
Soit un bouton de formulaire auquel on affecte une macro qui affiche l'UserForm,
Soit un bouton ActiveX dont c'est le code associé qui le fait.
Vous pouvez aussi prévoir son affichage lors de l'activation d'une feuille si vous voulez.

Bien que je pense qu'il vaudrait mieux tout afficher dans des contrôles de l'UserForm, il serait possible d'obtenir un résultat provisoire assez rapide en ajoutant cette procédure :

VB:
Private Sub CL_BingoUn(ByVal Ligne  As Long)
CL.PlgTablo.Rows(Ligne).Name = "LBD"
End Sub
Ça permettrait en effet des formules genre :
Code:
=$A:$A LBD

Pourquoi ne feriez vous pas subir à votre BD une mise sous forme de tableau ?
Ça vous permettrait de supprimer tout ces noms apportés manuellement au profit des titres des colonnes du tableau.
Surtout qu'alors l'objet ComboBoxLiée reconnait l'objet ListObject qui représente ce tableau et reconnait aussi les titres des colonnes:
VB:
Option Explicit
Private WithEvents CL As CBxL.ComboBoxLiées

Private Sub UserForm_Initialize()
Set CL = CBxL.Création.ComboBoxLiées
CL.Plage Feuil3
CL.Add Me.CBxNomClient, "Client"
CL.Add Me.CBxDateDépart, "Date Départ"
CL.Add Me.CBxDestinat, "Destination"
CL.CouleurSympa
CL.Actualiser
End Sub

Private Sub CL_BingoUn(ByVal Ligne As Long)
CL.PlgTablo.Rows(Ligne).Name = "LBD"
End Sub

La formule pourrait devenir pour C4 :
Code:
=Tableau1[Vendeur] LBD

Bonjour Dranreb
alors la ça s'emballe, vais-je savoir suivre !!!
Je regarde, j'essaye de digérer et je reviens. Je suis pris toute l'après-midi donc rien avant demain matin.
Ceci dit oui pourquoi ne pas passer sous tableau, mais je ne voudrais pas y repasser des dizaines d'heures.
Cordialement
Jean Michel
 

ChTi160

XLDnaute Barbatruc
Bonjour Jean Michel
Bonjour le Fil ,Le Forum
une approche (adaptation d'un de mes Fichiers) non finalisée !
à voir , pour test , j'espère que tu peux utiliser les ListView Lol
Bonne fin de Journée
Amicalement
Jean marie
 

Pièces jointes

  • ListView_Recherche (V7.1).xlsm
    72.2 KB · Affichages: 64

PERSEVERANT

XLDnaute Junior
Bonjour Jean Michel
Bonjour le Fil ,Le Forum
une approche (adaptation d'un de mes Fichiers) non finalisée !
à voir , pour test , j'espère que tu peux utiliser les ListView Lol
Bonne fin de Journée
Amicalement
Jean marie

Bonsoir à tous
Bonsoir Jean Marie
je vais regarder, je n'ai aucune idée de ce que peuvent être des ListView, mais je vais découvrir.
Je pars deux jours , donc je regarde ça ce week end.
Merci
 

PERSEVERANT

XLDnaute Junior
Bonjour Jean Michel
Bonjour le Fil ,Le Forum
une approche (adaptation d'un de mes Fichiers) non finalisée !
à voir , pour test , j'espère que tu peux utiliser les ListView Lol
Bonne fin de Journée
Amicalement
Jean marie

Bonjour Jean Marie, bonjour à tous ceux qui suivent ce fil
Fin de semaine marathon, et donc weekend de repos.
Je viens seulement de jeter un œil à ton oeuvre, c'est de la belle ouvrage, bien au dessus de mes compétences.
Je pense avoir à peu près compris le principe, je n'en dirais pas autant de l'écriture.. Mais pour répondre à ta question je peux utiliser des ListView.
Deux remarques:
peut on (bien sur qu'on peut) simplifier la "boite" de tri, je n'ai en fait besoin que de 3 critères (le nom du client, la date de départ et la destination). Je pense qu'en lisant de plus près ton code je saurais simplifier mais j'ai peur de rater une liaison avec les autres codes qui serait dommageable à l'ensemble.
mon idée de départ, et elle n'était pas neutre, était de fournir à mes collaborateurs un aperçu de la rentabilité de leur vente. Pour cela j'avais mis dans ma feuille deux zones quasi identiques, l'une reprenant les données extraites d'après le retour des choix ComboBox, l'autre entourée de noir (je sais ça fait un peu deuil) qui permettait d'avoir les données modifiées en visu par rapport à la première zone; et deux calculs de rentabilité avec affichage en couleur et en valeur de la rentabilité du devis (avant et après).
Ta présentation est moins lourde que la mienne, mais je perds cette notion de rentabilité avant et après.
Cordialement
Jean Michel
 

ChTi160

XLDnaute Barbatruc
Bonsoir Jean Michel
Bonsoir le Fil,Le Forum
Je regarde pour ramener la recherche à Trois Critères .
Ai je bien compris ? Tu alimentes tes tableaux de la Feuille "Consultation" via la Ligne 2
il suffirait , si j'ai bien compris de récupérer la sélection dans la ListView ou ListBox au niveau de cette Ligne 2 .
Autre question : Tu as besoin (au niveau de cette ligne 2) , de Combien de colonnes ? sur les 80 que compte ton tableau "BD".
Dans l'attente
Bonne fin de soirée
Amicalement
Jean marie
 

ChTi160

XLDnaute Barbatruc
Re
En attendant plus de précisions LOl
une version ListBox (4 Critères de Recherche)
Voir après sélection d'une ligne dans la ListeBox , le resultat en "Feuil1"
Bonne fin de Soirée
Amicalement
Jean marie
 

Pièces jointes

  • test base de données tourisme (5).xlsm
    167 KB · Affichages: 69
Dernière édition:

PERSEVERANT

XLDnaute Junior
Bonsoir Jean Michel
Bonsoir le Fil,Le Forum
Je regarde pour ramener la recherche à Trois Critères .
Ai je bien compris ? Tu alimentes tes tableaux de la Feuille "Consultation" via la Ligne 2
il suffirait , si j'ai bien compris de récupérer la sélection dans la ListView ou ListBox au niveau de cette Ligne 2 .
Autre question : Tu as besoin (au niveau de cette ligne 2) , de Combien de colonnes ? sur les 80 que compte ton tableau "BD".
Dans l'attente
Bonne fin de soirée
Amicalement
Jean marie

Bonjour Jean Marie
Bonjour à tous
Le tableau (partie gauche) de la feuille consultation est alimenté par la feuille Base de Données en fonction de la ligne d'enregistrement détectée par la sélection Client-DateDépart-Destination.
La ligne N°2 de la feuille Consultation sert à enregistrer les modification apportées (éventuellement) dans la partie droite de la feuille, pour les réinjecter dans la base de données.
La ligne 2 nécessite toutes les colonnes puisque les modifications peuvent porter sur l'ensemble des données.
Amicalement
Jean Michel
 

PERSEVERANT

XLDnaute Junior
Re
En attendant plus de précisions LOl
une version ListBox (4 Critères de Recherche)
Voir après sélection d'une ligne dans la ListeBox , le resultat en "Feuil1"
Bonne fin de Soirée
Amicalement
Jean marie

Re
je confirme que le critère Vendeur n'est pas utile
l'accès à la recherche est passé dans la feuille Base de données, qui sera cachée pour les utilisateurs, l'UserForm doit donc apparaître dans la feuille Consultation, je n'ai pas vu comment la changer de positionnement.
Pour ce qui est des deux premières lignes, que ce soit en feuille saisie, ou Consultation ce seront des lignes masquées à l'utilisateur.
Le tri s'effectue parfaitement, comme quoi la maîtrise de VBA donne une puissance que je n'ai pas.
Amicalement
Jean Michel
 

ChTi160

XLDnaute Barbatruc
Bonjour Jean Pierre
Bonjour le fil ,Le Forum
une version modifiée
questions :
Que doit on afficher dans la ListBox ?
Ou doit on mettre la Ligne qui reste , après le filtre ?
Bonne fin de journée
Amicalement
Jean marie
 

Pièces jointes

  • test base de données tourisme (5.1).xlsm
    161.7 KB · Affichages: 63

PERSEVERANT

XLDnaute Junior
Bonjour Jean Pierre
Bonjour le fil ,Le Forum
une version modifiée
questions :
Que doit on afficher dans la ListBox ?
Ou doit on mettre la Ligne qui reste , après le filtre ?
Bonne fin de journée
Amicalement
Jean marie


Bonjour Jean Marie
Bonjour à tous
Seules les 3 infos correspondant aux 3 questions sont nécessaires à mon avis, plus peut être le N° d'enregistrement.
Dans l'esprit initial ce filtrage servait uniquement à repérer le N° d'enregistrement correspondant à la recherche. Ce N° servant via Index à afficher toutes les infos du devis recherché.
Je ne sais pas si je réponds à la question N°2. Pour moi seul le N° d'enregistrement est l'info à conserver.
Amicalement
JM
 

Discussions similaires

Réponses
6
Affichages
304

Statistiques des forums

Discussions
312 083
Messages
2 085 183
Membres
102 808
dernier inscrit
guo