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

Macros et VBA Excel Discussion :

Générer graphiques dynamiquement [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de odsen.s
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 269
    Par défaut Générer graphiques dynamiquement
    Bonjour,

    Je travaille en ce moment sur Sharepoint et souhaite génerer des graphiques via Excel. L'utilisateur peut, via un formulaire sur sharepoint, renseigner un paramètre à Excel, qui s'inscrit dans une cellule.

    J'aimerais pouvoir utiliser ce paramètre pour générer un graphique : ce paramètre ne serait pas utilisé comme un élément de calcul, mais il renseignerait la ligne à utiliser pour générer le graphique. Exemple : si le paramètre reçu dans ma cellule est 7, alors le graphique utilise les données de la 7ème ligne.

    Il faudrait en fait pouvoir écrire le contenu de ma cellule paramètre dans la formule décrivant les données à utiliser pour le graphique...

    Est-ce possible ? Si oui comment ?

    Par avance, merci.

  2. #2
    Membre éclairé
    Avatar de odsen.s
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 269
    Par défaut
    Je viens préciser un peu ma question.
    Je peux en fait baser mon graphique sur une ligne qui est en fait une recopie de la ligne souhaitée pour générer le graphique.

    La question devient alors : comment recopier la ligne souhaitée en fonction d'un critère ? J'ai essayé d'utiliser les filtres, mais le souci est qu'il faut l'appliquer à chaque modification du critère. Je souhaite dans mon cas que la recopie des données soit immédiate si le critère est modifié.

    J'ai alors pensé qu'une formule pourrait être la solution. Je vais détailler un peu mon exemple pour que ça soit un peu concret. Voici mes données (en gros, et en simplifié) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    trajet         |     coût    |   temps  
    PARIS-BREST    |     150     |     4
    PARIS-NANTES   |     110     |     3
    PARIS-LILLE    |     50      |     1
     
    parametre
    PARIS-BREST
     
    ligne désirée, recopiée grâce au paramètre :
    PARIS-BREST    |     150     |     4
    Ma question est donc : quelle formule puis-je insérer dans la ligne désirée afin que ça soit la bonne ligne qui soit recopiée en fonction du paramètre, et que si je modifie mon paramètre la ligne désirée soit modifiée instantanément ?

    J'ai vu une démo sur youtube qui reprend le même principe, mais sur une recopie d'un ensemble de lignes (pas une seule comme dans mon cas), et je n'arrive pas à appliquer la formule dans mon cas. Je tiens à préciser que je n'ai pas d'expérience en ce qui concerne les formules excel.

    Si vous avez une idée de solution, ou si vous voulez des détails sur mon problème au cas où je ne serais pas assez clair, n'hésitez pas.

    Merci.

    Voici la vidéo youtube proche de mon problème :
    [ame="http://www.youtube.com/watch?v=6bGKhbUYOas&feature=channel"]YouTube- Excel Magic Trick 185 Dynamic Formula Extract Data 1criteria[/ame]

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    une piste, sur l'évènement change de ta feuille excel
    les données sont en colonne A B et C

    la cellule de choix du critère trajet en D20
    j'ai supposé qu'au maximum une seule ligne répondrait au critère.
    (on peut éventuellement placer en D20 une liste de validation qui reprend les trajets)
    la ligne correspondant au critère est copiée en D21, E21 et F21.
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Plage As Range, c As Range
    Dim LastLig As Long, Lig As Long
    If Target.Address = "$D$20" Then
        LastLig = Range("A1").End(xlDown).Row
        Set Plage = Range("A2:A" & LastLig)
        Set c = Plage.Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole)
            If Not c Is Nothing Then
                Lig = c.Row
                Range("A" & Lig & ":C" & Lig).Copy Range("D21")
            Else
                Range("D21:F21").ClearContents
            End If
        Set c = Nothing
        Set Plage = Nothing
    End If
    End Sub

  4. #4
    Membre éclairé
    Avatar de odsen.s
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 269
    Par défaut
    Bonjour,

    Je viens de me rendre compte en voyant ta réponse que j'avais posté dans "Macros et VBA Excel", ce que je en souhaitais pas forcément...

    Mais ta réponse peut tout de même m'intéresser ! Le fait d'utiliser ton code permettra-t-il la modification immédiate (pas de macro à lancer manuellement) de ma ligne souhaitée ?

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    à chaque changement de la cellule D20, le code est lancé automatiquement. (à mettre dans l'évènement Change de ta feuille)
    Sinon, un filtre élaboré te donnera le résultat souhaité.

  6. #6
    Membre éclairé
    Avatar de odsen.s
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    269
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 269
    Par défaut
    J'ai finalement trouvé un moyen avec une formule, merci de ton aide en tout cas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ACCESS] Etats graphiques dynamiques
    Par fredrider dans le forum IHM
    Réponses: 7
    Dernier message: 20/07/2006, 19h32
  2. [Image] Graphique dynamique
    Par navis84 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 23/05/2006, 10h15
  3. [Map] comment generer une interface graphique dynamiquement?
    Par hby dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 20/04/2006, 17h01
  4. [Librairies] Graphique dynamique
    Par piloup dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/12/2005, 20h56
  5. Interface graphique dynamique
    Par gmonta dans le forum Windows Forms
    Réponses: 7
    Dernier message: 05/10/2005, 15h47

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