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 :

créer graphique avec cellules sélectionnées


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    145
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 145
    Par défaut créer graphique avec cellules sélectionnées
    Bonjour voila j'ai un code qui me permet de rechercher des valeurs et de les sélectionner dans des colonnes, ValA et valB.

    Maintenant j'aimerais que avec cette sélection je puisse faire un graphique.

    Mais je sais pas comment récuperer ma valeur de mes cellules sélectionné


    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
    Sub SelectionnerLignes1(Feuille As Worksheet, ValA As Variant, ValB As Variant)
      Dim Cellule As Range, Plage As Range
      Dim i As Long
     
      For Each Cellule In Feuille.Range("B5:b" & Feuille.Range("b" & Feuille.Rows.Count).End(xlUp).Row)
       If Not IsEmpty(ValB) Then
        If Cellule = ValA And Cellule(1, 2) = ValB Then
          If Plage Is Nothing Then Set Plage = Union(Cellule, Cellule(1, 2), Cellule(1, 3), Cellule(1, 4), Cellule(1, 5)) Else Set Plage = Union(Plage, Cellule, Cellule(1, 2), Cellule(1, 3), Cellule(1, 4), Cellule(1, 5))
        End If
       Else
        If Cellule = ValA Then
          If Plage Is Nothing Then Set Plage = Union(Cellule, Cellule(1, 2), Cellule(1, 3), Cellule(1, 4), Cellule(1, 5)) Else Set Plage = Union(Plage, Cellule, Cellule(1, 2), Cellule(1, 3), Cellule(1, 4), Cellule(1, 5))
        End If
       End If
      Next Cellule
      Feuille.Select
      If Not Plage Is Nothing Then Plage.Select
     
      Charts.Add
        ActiveChart.ChartType = xlColumnClustered
        ActiveChart.SetSourceData Source:=Sheets("BOARDMASTER").Range(Plage), PlotBy:=xlRows
        ActiveChart.Location Where:=xlLocationAsObject, Name:="BOARDMASTER"
     
    End Sub

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Perso, je travaillerais comme ceci.

    Je nommerais la plage qui doit contenir les données source du graphique (donc, toutes les lignes, même celles qui seront liées) (via Excel, ou via VBA)

    Je modifierais la macro pour qu'elle masque les lignes qui ne correspondent pas aux critères (au passage, le test sur ValA peut être intégré dans le premier IF, pas besoin de deux IF pour cela)

    Le graphique qui sera alors créé n'affichera que les valeurs des lignes affichées.

    Perso, dans la mesure du possible, je créerais le graphique sur la feuille en Excel, car je préfère faire de la mise en place (planter le décor) en Excel et laisser le VBA pour le strict nécessaire

    De plus, à partir du moment où tu travailles avec la feuille BOARDMASTER, tu n'as plus besoin de la passer en paramètre, et si tu choisis de garder le paramètre, alors, "générise" ta macro jusqu'au bout en utilisant name:=feuille.name plutôt que Name:="BOARDMASTER"

    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
    Sub SelectionnerLignes1(Feuille As Worksheet, ValA As Variant, ValB As Variant)
      Dim Cellule As Range, Plage As Range
      Dim i As Long
     
      For Each Cellule In Feuille.Range("B5:b" & Feuille.Range("b" & Feuille.Rows.Count).End(xlUp).Row)
       If Not IsEmpty(ValB) Then
        If Not ((Cellule = ValA) Or (Cellule = ValA And Cellule(1, 2) = ValB)) Then
          Cellule.EntireRow.Hidden = True
        End If
       End If
      Next Cellule
      Feuille.Select
      If Not Plage Is Nothing Then Plage.Select
     
      Charts.Add
        ActiveChart.ChartType = xlColumnClustered
        ActiveChart.SetSourceData Source:=Feuille.Range("PlageGraphique"), PlotBy:=xlRows
        ActiveChart.Location Where:=xlLocationAsObject, Name:="BOARDMASTER"
     
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [XL-2010] Créer Graphique avec 2 tableaux croisé dynamique
    Par Mrfreeze117 dans le forum Excel
    Réponses: 22
    Dernier message: 26/02/2015, 09h38
  2. créer un graphique avec plage sélectionnée
    Par adriennoob dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/04/2010, 15h12
  3. Créer une interface graphique avec java
    Par omar344 dans le forum Interfaces Graphiques en Java
    Réponses: 26
    Dernier message: 20/06/2007, 13h30
  4. créer un graphique avec 10 champs
    Par lolothom dans le forum Access
    Réponses: 5
    Dernier message: 04/06/2007, 15h31
  5. Créer un arbre avec cellules (treeview)
    Par Scritch852 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/03/2007, 12h22

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