IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

quelle fonction dois-je utiliser ? [XL-2007]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Points : 10
    Points
    10
    Par défaut quelle fonction dois-je utiliser ?
    Bonjour,

    J'ai une base de contact sous excel avec 1 onglet pour les données "BDD" avec societe+nom+fonction (DG ou DRH ou Sécurté) et un onglet pour la consultaton "consultation".

    Actuellement dans ma consultation au moyen d'une liste déroulante lorsque je cselectionne le nom du contact j'ai sa fiche (graàce à la fonction INDEX) qui m'affiche toutes ses coordonnées.

    ce que je souhaite en plus c'est que si mon "contact 1" est le DG de la "societe 1" , alors apparaissent également le DRH et le S de cette même société.
    Mais si mon contact 1 est DRH alors c'est le DG et le Sécurité qu'il me faudra.

    Quelle fonction peut répondre à mon besoin et comment gérer l'info alléatoire.
    (en effet selon la société (il se peut que sur certaine société je n'ai pas de Sécurité ou qu'il y est 2 DRH ?)

    si possible sans macro.

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonjour,

    Cela devrait être possible par formules, mais avec un extrait de ton fichier en pièce jointe, reprenant les données de départ et le résultat souhaité, ce serait plus facile de s'en assurer.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Points : 10
    Points
    10
    Par défaut quelle fonction ?
    Bonjour,

    Je n'y arrive pas, j'ai beau chercher, essayer avec SI ou bien RECHERCHE, je ne trouve pas la fonction qui peut m'apporter le résultat .

    Je joins mon fichier.

    Merci de votre aide.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonjour,

    Une proposition de formules sous le message suivant :
    http://www.developpez.net/forums/d78...ante-desordre/

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Points : 10
    Points
    10
    Par défaut quelle fonction dois-je utiliser ?
    Bonjour,

    Contexte : gestion de contacts pro avec 2 onglets : table + consultation

    Problèmatique : je souhaite qu'en consultation lorsque qu'un contact est choisi, toute la liste des collaborateurs avec comme critère prioritaire "service" de son site apparaisse.

    Je suis partie sur une condition avec SOMMEPROD etc..mais quand dans ma table je fais des modifs, filtre ou tri etc...lcela à une incidence sur la consultation.

    Question : quelle méthode employée ppur arriver au mieux et au plus sur à mon but (attention il peut y avoir plusieurs contcat par service)?
    alors : fonction (sommprod, recherche??) ? filtres personnalisés ? macro. Je suis complètement paumée depuis 1 semaine et je perd un temps fou.

    Je joins un petit exemple basic

    merci
    Merci de votre aide
    Fichiers attachés Fichiers attachés

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 150
    Points
    150
    Par défaut
    Bonjour,

    Je ne vous réponds pas pour vous donner la solution et je doute que quelqu'un arrive à le faire.

    Ce que j'ai envie de dire, c'est que je suis très étonné par le nombre de personnes qui essaient de faire une base de données dans Excel.

    Citation Envoyé par tsgri Voir le message

    Je suis partie sur une condition avec SOMMEPROD etc..mais quand dans ma table je fais des modifs, filtre ou tri etc...lcela à une incidence sur la consultation.
    Et j'ajouterai qu'il ne faut pas vous étonner de rencontrer ce genre de problème. Je vous incite donc, à l'avenir, à penser à un vrai SGBD (ne serait-ce qu'Access pour des petits volumes de données) pour faire votre application, et à donner ce conseil autour de vous (car j'imagine que ce n'est pas vous qui avez choisi de faire la BDD sous Excel). C'est vrai qu'Access n'est pas aussi facile à manier qu'Excel mais, comme vous l'avez si bien dit:

    Citation Envoyé par tsgri Voir le message
    je perd un temps fou.
    il arrive donc quelques fois où il faut choisir entre la facilité d'utilisation et la fiabilité du résultat.

    Bon courage pour la suite.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonjour,

    Il n'est pas souhaitable de poser la même question sous deux messages différents.
    http://www.developpez.net/forums/d78...ante-desordre/

    Celui qui te répondra à ce message-ci n'est pas forcément au courant des réponses qui t'ont été fournies sur l'autre message, et vice-versa.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    ok, mais c'était pour formuler la problèmatique de manière à mieux me faire comprendre et pour réactualiser l'intitulé, qui même si il n'est pas résolu, ne correspondait plus au sujet en cours.

    Je fais désormais distinctement mes questions. et j'en ai....comme je suis en train de faire la refonte de ma base..

    merci je note ta remarque.

  9. #9
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    Certaines choses ont déjà été dites, je vais donc pas répéter.
    Pour ton problème, je ne pense pas que les fonctions soient les plus indiquées, à première vue un Tableau croisé dynamique bien pensé et mis en forme devrait te convenir, sinon on en arrive aux macros.
    Si tu veux je te fais un petit exemple sur base de ton fichier exemple.
    A+

  10. #10
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Re,
    Voici un exemple très rapide de ce qui est possible (très rapide donc mise en forme bof,...) en combinant Macro et TCD
    Je me suis permis de mettre 'non' pour réunion quand c'était vide.
    A+

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    ohh lalalala, c'est royal !!! il me semble que cela répond excatement à ma problèmatique. Enfin !! je suis obligée de partir pour unrv, mais dès demain matin j'adapte à ma base et je te tiensau courant.
    ohh vraiment merci.

  12. #12
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    C'est pas que je m'emmer.. mais c'est tout comme, je me suis donc amusé à faire un petit code sans prétention qui colle plus à ce que tu souhaitais faire.
    Par contre, par facilité j'ai renseigné Non dans les cellules vide de la colonne réunion de la Bdd.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub listeV2()
     
    Dim DerLigne As Long, k As Long, i As Long, j As Long
    Dim MaSoc As String
     
    Range("K14:IV18").Clear 'Efface les données précédentes
     
    DerLigne = Sheets("BDD").Cells(Columns(1).Cells.Count, 1).End(xlUp).Row 'Defini la dernière ligne de la base
    MaSoc = Sheets("Consultation").Range("F5") 'Défini la société selon le nom
     
    For i = 2 To DerLigne 'Boucle pour vérifier la société
        If Sheets("BDD").Cells(i, 1).Value = MaSoc Then 'Si société =
            For j = 14 To 18 'Boucle sur les services
            k = Cells(j, Rows(j).Cells.Count).End(xlToLeft).Column 'Defini la dernière colonne remplie
                If Sheets("Bdd").Cells(i, 3) = Sheets("Consultation").Cells(j, 10) Then 'Vérifie si service =
                    Sheets("Consultation").Cells(j, k + 1) = Sheets("BDD").Cells(i, 4) 'si oui applique le nom
                    Sheets("Consultation").Cells(j, k + 2) = Sheets("BDD").Cells(i, 5) 'si oui applique le statut réunion Oui/non
                 End If
            Next j
        End If
    Next i
     
    For i = 14 To 18 'Boucle pour mettre Pas de contact
        If Sheets("Consultation").Cells(i, 10) = "" Then Sheets("Consultation").Cells(i, 10) = "Pas de contact"
    Next i
     
    End Sub
    A+

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    Bonjour Fvandermeulen,
    Je rappelle que je suis débutante mais motivée j'y vais donc par étape.

    Pour commencer rien que en rapport à ta proposition bdd(1) qui me convient :
    j'ai donc fais un TCD, mais je n'arrive pas à comprendre comment le TCD récupère le choix fait en liste déroulante.
    J'ai vu dans le code de la feuille qu'il y a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Calculate()
    Dim MaVal As String
    Application.EnableEvents = False
    MaVal = Range("F5")
    ActiveSheet.PivotTables("PivotTable1").PivotFields("SOCIETE").CurrentPage = MaVal
    Application.EnableEvents = True
    End Sub
    Peux -tu me l'expliquer stp ?

    Après je m'attaque à la macro que 'j'ai déjà essayé de decrypté mais ca va pas être simple, par contre quand j'aurais pigée waouhh je serais super contente.

    merci.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    je pense que ce code répond à ma question, mais ca marche pas ? j'ai pourtant nommé le tableau pareil "pivottable1" j'ai juste modifié la cellule F5 pour correspond a la vraie dan sma base qui est G4. mais ca pivote pas !

  15. #15
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Citation Envoyé par tsgri Voir le message
    Bonjour Fvandermeulen,
    Je rappelle que je suis débutante mais motivée j'y vais donc par étape.

    Pour commencer rien que en rapport à ta proposition bdd(1) qui me convient :
    j'ai donc fais un TCD, mais je n'arrive pas à comprendre comment le TCD récupère le choix fait en liste déroulante.
    J'ai vu dans le code de la feuille qu'il y a :
    Private Sub Worksheet_Calculate()
    Dim MaVal As String
    Application.EnableEvents = False
    MaVal = Range("F5")
    ActiveSheet.PivotTables("PivotTable1").PivotFields("SOCIETE").CurrentPage = MaVal
    Application.EnableEvents = True
    End Sub


    Peux -tu me l'expliquer stp ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Calculate() 'lance la macro quand un calcul s'eefectue sur la feuille, dans notre cas le choix du nom
    Dim MaVal As String 'dimensionne la variable qui récupère le nom
    Application.EnableEvents = False 'Evite de relancer la macro car par la suite le changement dans le TCD sera un "calcul"
    MaVal = Range("F5") 'Affecte la société à la variable
    ActiveSheet.PivotTables("PivotTable1").PivotFields("SOCIETE").CurrentPage = MaVal 'Change le champ avec la société choisie.
    Application.EnableEvents = True 'rétabli le principe de macro sur base de calcul.
    End Sub
    Ca ne fonctionne peut être pas chez toi car tu es en français, le nom du TCD est alors différent.
    Un petit truc, lance l'enregistreur de macro, change une sélection dans le TCD, arrête l'enregistreur et vas voir le code, tu auras le bon nom du TCD.

    A+

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    En fait après réouverture de mon fichier je constate que la macro fonctionne le temps que... : Erreur d'excution '1004' Impossible lire la propriété PivotTables de la classe Worksheet.

    J'ai donc suivi ton conseil mais il a l'air de reconnaitre le nom du TCD c'est pareil non ?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Macro1()
    '' Macro1 Macro
    '    Range("B33:B34").Select
        ActiveSheet.PivotTables("PivotTable1").PivotFields("SOCIETE").ClearAllFilters
        ActiveSheet.PivotTables("PivotTable1").PivotFields("SOCIETE").CurrentPage = _
            "ARC"
        Range("B37").Select
        Application.Run "BASE_de_DONNEES_macro.xlsm!Macro1"
        Application.Goto Reference:="Macro1"
    End Sub
    alors eh fait sur l'onglet consultations aucun problème, ca fonctionne parfaitement par contre c'est lorsque je vais dans ma table et que je change l'odre de tri que le message d'erreur ci-dessus apparait ? et donc ca me plante la macro.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Fvandermeulen Voir le message
    C'est pas que je m'emmer.. mais c'est tout comme, je me suis donc amusé à faire un petit code sans prétention qui colle plus à ce que tu souhaitais faire.
    A+
    .......

    Je m'attaque maintenant à cette macro mais s'il te plait peux tu déjà en gros me dire son objectif .
    merci

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Points : 10
    Points
    10
    Par défaut macro Erreur PivotTables
    Bonjour,

    Mon TCD est nommé "TableauBDD"

    Grâce à la macro ci-dessous, quand je selectionne dans la liste déroulante de ma consultation la société X, allors le choix est repercuté dans le TCD , cela marche mais dès que je vais dans ma table de données sur l'autre onglet et bien alors j'ai le message d'erreur suivant : Erreur d'exécution '1004' Impossible de lire la propriété PivotTables de la classe Worksheet."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Calculate()
    Dim MaVal As String
    Application.EnableEvents = False
    MaVal = Range("G4")
    ActiveSheet.PivotTables("TableauBDD").PivotFields("SOCIETE").CurrentPage = MaVal
    Application.EnableEvents = True
    End Sub"
    Merci de votre aide.

  19. #19
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    Dans le code on dit d'adapter le TCD sur la feuille active, comme le TCD n'est pas sur ta feuille BDD ça coince.
    Adaptes la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PivotTables("TableauBDD").PivotFields("SOCIETE").CurrentPage = MaVal
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("TaFeuilleAvecTCD").PivotTables("TableauBDD").PivotFields("SOCIETE").CurrentPage = MaVal
    A+

    Edit: correction coquille: Worksheets et pas worksheet

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 39
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Désolée... j'ai maintenant le message d'erreur suivant "sub ou function non définie" .
    Et le débogueur m'indique la routine de la macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Private Sub Worksheet_Calculate()"
    Que dois-je faire ?
    merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Quelles fonctions utiliser pour cette vue ?
    Par Fngonka dans le forum SQL
    Réponses: 8
    Dernier message: 23/09/2008, 14h25
  2. Réponses: 1
    Dernier message: 21/01/2008, 22h40
  3. Spectre d'un signal : quelle fonction utiliser ?
    Par fredoderrick dans le forum Signal
    Réponses: 2
    Dernier message: 12/10/2006, 21h20
  4. [SQL2005] Quelle collation dois-je utiliser ?
    Par StormimOn dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/08/2006, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo