Userform ou pas?
#1
Débutant XLPages

Inscription: 15/07/2010

Messages: 16

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 21-07-2010 16h18
Bonjour à tous! 
Je reviens auprès de vous pour un souci dans le récapitulatif d'un tableau que j'ai résumé en pièce jointe.
Il s'agit pour moi par un procédé (lequel? Userform ou recherchev() rechercheh()) de retrouver des postes tels que le Fournisseur, Le client, le Montant ainsi que la validité du contrat.

(Je signale que le document initial contient une plage de cellules plus grande)

Allé, une fois encore MERCI d'avance....




Pièce jointe:
xlsm Fiche fournisseur & client.xlsm   [ Taille: 27.64 Ko - Téléchargements: 546 ]
Hors Ligne
Rapport   Haut 

Re: Userform ou pas?
#2
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 21-07-2010 17h34
Bonjour Stéphane,

J'ai ouvert ton classeur et j'ai quelques questions.

  1. La plage de données sur laquelle tu désires obtenir des informations couvre les colonnes A:M sur une quantité de lignes plus importante que celle du classeur joint. Combien : 200, 10 000 ou 1 000 000?
  2. Il y aura autant de listes déroulantes que de lignes dans cette plage? Si c'est le cas il faudra utiliser une méthode différente. Un million de listes déroulantes et je vois déjà la boucane (fumée) sortir de mon ordi.
  3. Tu cherches à afficher les champs Fournisseur, Client, Montant et Validité du contrat pour toutes les lignes de la plage de données?
  4. Voudras-tu appliquer un filtre sur l'un de ces champs ou sur un autre?
  5. Faire une recherche plus fine sur plusieurs critères?


Bref, pourrais-tu élaborer un peu sur ce que tu cherches à faire.

Cordialement,
Guy



Hors Ligne
Rapport   Haut 

Re: Userform ou pas?
#3
Débutant XLPages

Inscription: 15/07/2010

Messages: 16

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 21-07-2010 19h12
Bonjour Guy,
Merci pour ta prompt réaction;

J'ai fait une tentative que tu trouveras ci-joint. J'avoue qu'elle me séduit moins puisque j'aurais aimé qu'en faisant une recherche Fournisseur + client, obtenir tous les autres champs à savoir Montant et validité du contrat.
(Il est vrai que dans le fichier joint, tu remarqueras que j'ai opté pour tous les champs)
Néanmoins si tu as des propositions d'amélioration à faire je suis tout ouïe.

En réponse à tes questions:
1.Les colonnes vont de A:V sur 124 lignes
2.Pour la liste déroulante, une idée me viens, penses-tu possible de la poser sur la feuille FP?

Merci et bien cordialement
Pièce jointe:
xlsx Fournisseur & client_mon essai.xlsx   [ Taille: 26.70 Ko - Téléchargements: 501 ]
Hors Ligne
Rapport   Haut 

Re: Userform ou pas?
#4
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 22-07-2010 14h54
Bonjour Stéphane,

Bien, avant de nous étendre en mise en forme conditionnelle, formules brillantes et autres fioritures revenons sur la structure des données que tu présentes.

Dans la plage de données sur laquelle se fonde ton classeur et qui se trouve dans la plage A3:M13 il y a quelques parasites. Je m'explique. Une plage de données n'a pas à ressembler à une feuille de rapport tout comme une feuille de rapport ne doit pas ressembler à une plage de données.

Par exemple les noms des Fournisseurs n'ont nul besoin d'apparaître par bloc de lignes contigües. Le fournisseur RED peut très bien se trouver ici ou là dans la plage. C'est au processus de recherche de dénicher les lignes où il se trouve. De même je ne crois pas que l'un des fournisseurs se nomme Total (à moins que tu ne fasses affaires avec la pétrolière ). Donc exit Total de la plage de données. La tâche de calculer les Totos sera dévolue à un autre processus de traitement.

La plage de données brutes débarrassée pour l'instant des champs (colonnes) calculés montre les relations suivante entre les différents champs. Très schématiquement nous pouvons écrire :

1 Fournisseur a n Clients
1 Client a n Fournisseurs
1 Fournisseur est lié par n Contrats
1 Contrat est établi avec n Clients

et en conséquence

n Fournisseurs ont m Clients liés par p contrats

Relation de plusieurs à plusieurs... hmmm.

Pour définir l'unicité d'un enregistrement (une ligne) à afficher dans le formulaire ou la feuille FP  la clé de fouille ne saurait être le Fournisseur seul mai bien le Fournisseur ET le Client ET le Contrat.

Il faudrait donc
  1. pour chaque fournisseur sélectionné afficher l'ensemble (sans doublon) de ses clients.
  2. suite à cette première sélection, pour le client sélectionné afficher l'ensemble des contrats liant ceux-ci.
  3. puis en sélectionnant LE contrat afficher l'enregistrement correspondant avec tous les champs calculés ou pas associés univoquement à ce Fournisseur ET ce Client ET ce Contrat.

Ce qui précède ressemble-t-il à ce que tu cherches à faire et est-ce cohérent au vu des données que tu présentes?

Si oui, remaniement de la plage de données d'abord.

Ensuite quelques question sur la mystérieuse liste déroulante apparaissant dans chaque enregistrement.
Quel est l'usage et la finalité de cette liste? Comment sa valeur est-elle choisie, selon quels critères?

Je te laisse sur ces quelques considérations.

Cordialement,

Guy



Hors Ligne
Rapport   Haut 

Re: Userform ou pas?
#5
Débutant XLPages

Inscription: 15/07/2010

Messages: 16

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 23-07-2010 13h52
Bonjour Guy,

   Merci encore, et encore, pour ces éclaircis qui me permettre de progresser, chaque fois un peu plus dans l'univers de ce Tableur.

Tes considérations sont bien fondées et je vais ainsi dire "TOUT A FAIT".
Il s'agit de ce que je cherche à faire et c'est effectivement cohérent avec les données dont je dispose.

La mystérieuse liste déroulante (ah celle là), répond, au souci que j'ai, lors de mes opérations; pour cause, il existe des variations de change entre le Dollard US et l'Euro. Taux que je constate à la fin de chaque mois (de Janvier à Décembre).

L'explication est toute simple: certains Contrats conclus avec les Fournisseurs sont en $ US, pourtant la refacturation aux Clients est essentiellement en Euro.

Je constate pour se faire des écarts entre l'achat auprès d'un fournisseur et la vente aux clients. C'est d'ailleurs qui m'a conduit à vouloir introduire une liste déroulante (il semble qu'elle n'ai pas sa place ici, oups!) qui me permettrait chaque fois que je constaterai une variation aucours d'un mois, de reprendre le cours du Change de la période.

Supposant avoir apporté plus de lumière sur cette "Mystérieuse liste déroulante", je te réitère mes remerciements.

Bien Cordialement,


Stéphane
Hors Ligne
Rapport   Haut 

Re: Userform ou pas?
#6
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 28-07-2010 03h22
Bonsoir Stéphane,

Concours de circonstances, karma mal ficelé, surmenage? Que sais-je?

Il se trouve que je n'ai pas eu une minute pour poursuivre notre conversation dans ce fil.

La raison en est toute simple, je suis à la recherche d'un emploi depuis des mois (20 mois pour être précis) et je suis tombé sur un boulot impec que je n'ai pas refusé, quand même!

Je passe donc la main à une autre ressource dans ce forum, certain que tu trouveras réponses à tes questions aussi bien, sinon mieux que ce que j'aurais pu t'indiquer.

Je serai donc absent pour quelques temps du forum de Didier, que je salue au passage très amicalement,  histoire de refaire ma provision de lard, de pain, de pinard et de bonne humeur pour la saison prochaine. Je salue tout aussi amicalement Mireille (mth) pour sa contribution exemplaire en tout point à ce forum.

Désolé de t'avoir laissé patienter pour rien. Je rempile et je reviens sous peu.

Très cordialement,

Guy

Hors Ligne
Rapport   Haut 

Re: Userform ou pas?
#7
Débutant XLPages

Inscription: 15/07/2010

Messages: 16

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 28-07-2010 11h53
Bonjour Guy,

Disons pour commencer que bon Karma il y a eu, puisque t'as trouvé un emploi, et je tiens à te féliciter et t'encourager pour la suite à tes nouvelles occupations.

Puisses-tu avoir le bonheur d'y travailler et je ne n'en doute pas vu ta disponibilité et le plaisir avec lequel tu viens en aide à ceux qui ont besoin d'un coup de main.

Nous espérons tous que de temps à autre tu pourras jeter un coup d'oeil sur ce forum et nous apporter de tes nouvelles.

Allé porte-toi bien, que la REUSSITE et le BONHEUR t'accompagnent dans ton nouvel emploi.

Cordialement,

Stéphane
Hors Ligne
Rapport   Haut 

Re: Userform ou pas?
#8
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 28-07-2010 23h24
Bonsoir Stéphane, Guy, le Forum,

Tout d'abord, félicitations cher Guy pour ce nouvel emploi 
Je suis content pour toi et te souhaite « le meilleur du mieux » !

Tout ça est bien évidemment prioritaire et nos interventions ici doivent rester du domaine du loisir.

Cela dit, Stéphane, je vais donc essayer de reprendre ce sujet avec toi si tu veux bien.

Par contre, une grande différence entre moi et notre ami Guy, différence avec laquelle tu vas devoir composer Stéphane : après lecture du présent sujet et analyse rapide des fichiers joints, je n'ai pas compris grand chose de ta demande !

Je résume donc ce qu'il me semble avoir compris :
  • tu cherches à représenter en feuille "FP" le détail d'une ligne tirée de ton tableau de l'onglet "Fiche fournisseur & client".
  • tu souhaites obtenir cette présentation après sélection dans une liste de l'item choisi.

Pour l'instant, en feuille "FP" c'est une liste déroulante qui sert de critère de choix.
Visiblement, cette même liste déroulante n'éclaire pas vraiment le choix à faire par l'utilisateur...
Voilà, pour l'instant Stéphane, mon analyse en est là !

Je pense qu'il conviendrait que tu détailles un peu plus ton besoin et notamment :
  • que cherches-tu à obtenir exactement ? Quel est le but de cet onglet "FP" ?
  • Sur quels critères l'utilisateur décidera-t'il d'afficher les données de telle ou telle ligne en feuille "FP" ?

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Userform ou pas?
#9
Débutant XLPages

Inscription: 15/07/2010

Messages: 16

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 30-07-2010 19h15
Bonsoir Didier, le forum,

Je tiens à m'excuser pour ce silence (je croule sous le poids du boulot).

Et bien merci à toi Didier de bien vouloir continuer ce que Guy avait entrepris.

Pour revenir sur mes attentes, j'avais donné des explications dans les post suivants (#3,#4,#5) qui sont mes échanges avec Guy.

Je ne sais pas si mon "problème" a été mal ficelé et, comme Guy l'avait suggéré, il me faut d'abord remanier la plage de données (ce que j'avoue n'avoir pas fait puisqu'occupé depuis un moment).

En résumé j'ai plusieurs fournisseurs avec plusieurs clients.
Un fournisseur a N contrats avec M clients
Un client a K contrats avec J fournisseurs

Le but était de pouvoir, à partir d'un fournisseur, retrouver tous les clients  avec les contrats qui les accompagnent.

La feuille FP n'est qu'une illustration que j'avais faite, pour partiellement résoudre mon "problème" puisque j'étais obligé par le temps de soumettre mes travaux à mes supérieurs.
Il s'est agit alors de créer une "sorte de fiche prospect" (feuille FP) avec liste déroulante qui permettait à chaque fois que je clique sur un fournisseur de retrouver le contrat et le client.
La liste déroulante "Fiche fournisseurs & client" résolvait mon problème de variation de taux de change, constatés durant toute la période liant le client au fournisseur.

De ce qui précède je ne sais pas si j'ai répondu à tes attentes.

Merci une fois de plus, d'avoir bien voulu prendre le relais;

Allé, au plaisir de te relire prochainement.

Cordialement


Hors Ligne
Rapport   Haut 

Re: Userform ou pas?
#10
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 31-07-2010 01h39
Bonsoir Stéphane,

Citation :
Stephane a écrit :
...
Le but était de pouvoir, à partir d'un fournisseur, retrouver tous les clients  avec les contrats qui les accompagnent.

La feuille FP n'est qu'une illustration que j'avais faite, pour partiellement résoudre mon "problème" puisque j'étais obligé par le temps de soumettre mes travaux à mes supérieurs.
Il s'est agit alors de créer une "sorte de fiche prospect" (feuille FP) avec liste déroulante qui permettait à chaque fois que je clique sur un fournisseur de retrouver le contrat et le client.
...


Bien, tu trouveras en pièce jointe mon interprétation de cette « liste de choix » (il te faut activer le contenu VBA à l'ouverture du classeur).

Attention toutefois, le code VBA est adapté à la structure du tableau de l'exemple fourni. Tu peux ajouter des lignes, elles seront automatiquement prises en compte. Mais il ne faut pas en modifier sa structure (entêtes de tableau en ligne 3, 13 colonnes, Fournisseur en colonne A, Clients en colonne M et contrats en colonne B notamment).

Par ailleurs, je me suis contenté de gérer la liste de choix, la mise à jour de la page "FP" est assurée par tes formules que je n'ai pas retouchée (formules basées sur la valeur de la cellule B3, seule cellule que je mets à jour à l'aide du code).

D'autre part, j'ai adapté le code à la structure de ton tableau actuel, mais je reste du même avis que Guy : ce tableau est à simplifier et devrait plus ressembler à une base de données simple.

Pour info, j'ai utilisé le code VBA suivant dans un module de code standard :

Option Explicit
'------------------------------------------------------------------------
' Auteur    : Didier FOURGEOT (myDearFriend!)  -  www.mdf-xlpages.com
' Date      : 31/07/2010
' Sujet     : Menu en cascade
'------------------------------------------------------------------------
Sub AffichListe()
Dim CB As CommandBar
Dim M As CommandBarPopup, M1 As CommandBarPopup, M2 As CommandBarButton
Dim TabTemp As Variant
Dim L As Long
    'On mémorise la liste des données
    With Sheets("Fiche fournisseur & client")
        'L = .Cells(.Rows.Count, 1).End(xlUp).Row
        L = .Range("A3").CurrentRegion.Rows.Count + 2
        TabTemp = .Range(.Cells(4, 1), .Cells(L, 13)).Value
    End With
    'On crée une barre de menu temporaire
    On Error Resume Next
    Application.CommandBars("MenuD").Delete
    On Error GoTo 0
    Set CB = Application.CommandBars.Add("MenuD", msoBarPopup, , True)
    For L = 1 To UBound(TabTemp, 1)
            If TabTemp(L, 1) <> "" And TabTemp(L, 1) <> "Total" Then
            '1er niveau du menu : Fournisseurs
            Set M = ElmtMenu(TabTemp(L, 1), CB, True)
            '2ème niveau du menu : Clients
            Set M1 = ElmtMenu(TabTemp(L, 13), M, True)
            '3ème niveau du menu : Contrats
            Set M2 = ElmtMenu(TabTemp(L, 2), M1, False, L)
           
            M2.OnAction = "'Maj """ & M2.Tag & """'"
        End If
    Next L
    'Affiche le menu
    With Application.CommandBars("MenuD")
        If .Controls.Count > 0 Then .ShowPopup
        .Delete
    End With
End Sub

Private Function ElmtMenu(ByVal T$, MenuParent As Object, Pop As Boolean, Optional L As Long = 0) As Object
Dim M As CommandBarControl
    On Error Resume Next
    Set M = MenuParent.Controls(T)
    On Error GoTo 0
    If M Is Nothing Then
        Set M = MenuParent.Controls.Add(IIf(Pop, msoControlPopup, msoControlButton), , , , True)
        M.Caption = T
        If L > 0 Then M.Tag = CStr(L)
    End If
    Set ElmtMenu = M
End Function

Sub Maj(ByVal T As String)
    'on inscrit l'index du choix en B1 sur feuille "FP"
    Sheets("FP").Range("B1").Value = Val(T)
End Sub

En espérant que cette proposition puisse t'inspirer...

Cordialement,

Pièce jointe:
zip PourStephane.zip   [ Taille: 33.87 Ko - Téléchargements: 589 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes