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 :

Graphiques sur une feuille avec plage de données sur une autre ( vba ) [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut Graphiques sur une feuille avec plage de données sur une autre ( vba )
    Bonjour,

    Malgré mes recherches sur ce forum, je bloque.......

    Voici MES problèmeSSSS


    1) Je n'arrive pas du tout à créer des graphiques dont les données sont sur la feuille ("Résultats par élève") pour les mettre dans des cellules ( ou sur des cellules ) de la feuille ("Graphiques").

    2) J'ai paramétré la taille des lignes et colonnes pour qu'un graphique corresponde à une cellule.
    Elève 1 : cellule A1
    Elève 2 : cellule B1
    puis C1 A2 B2 C2 A3 B3 C3 etc..... ( comment faire avec une boucle for i=1 to Nombreleve par exemple ??? )

    Pour un élève, un graphique correspond aux plages (A1:B6) puis (G1:G6) - pour l'élève dont le nom est NOM5 par exemple -...........


    J'ai joint mon fichier pour comprendre un peu mieux mes problèmes.

    Cordialement et merci d'avance.

    NOVICE72
    Fichiers attachés Fichiers attachés

  2. #2
    Membre régulier
    Homme Profil pro
    Esme Sudria
    Inscrit en
    Août 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Esme Sudria

    Informations forums :
    Inscription : Août 2016
    Messages : 8
    Par défaut
    Salut ,
    Je n'arrive pas à ouvrir ton fichier donc je crains de répondre à cote mais je tente quand même ma chance !
    Met le nom de tes élèves sur la même ligne ou même colonne tu pourras donc circuler avec un for:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'exemple si le nom de tes élèves sont dans la même colonne :
    Dim i as integer
    For i=1 to NbrEleve 'i = 1 si ton premier nom ce trouve a la ligne 1 et le nombre d’élevés à rentrer si tu veux tu peux l'obtenir directement 
         'ici tu crée le graphique en fonction de t'as plage de donnée sur la ligne 
    next
    http://excel.developpez.com/faq/?pag...ue#GraphCreate

    Va voir la FAQ sur les graphiques ça peut t'aider

    En espérant t'avoir apporter des éléments de réponse
    Cordialement David

  3. #3
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut
    Bonjour Duetor,


    C'est bizarre, 2 autres personnes n'arrivent pas non plus à ouvrir un autre fichier avec la même extension sur une autre discussion de ce site.....

    Bref, comme on me l'a conseillé, je te le renvoie en " .rar".



    Merci pour ton dévouement.


    PS: mon problème est avant tout de créer un graphique avec des données d'une autre feuille. Ensuite, bien sûr, je recommence autant de fois qu'il y a d'élèves...




    Novice72
    Fichiers attachés Fichiers attachés

  4. #4
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut
    Bonjour,

    Si cela peut aider, j'ai créé une procédure pour créer un graphique sur une feuille. a adapter à votre utilisation:


    les variables:
    FeuilleDEST = nom de la feuille destination où le graphique doit être présent
    DROITE = retrait par rapport à la droite de l'écran
    HAUT = retrait par rapport au haut de 'lécran
    LARGEUR = largeur du graphqiue
    HAUTEUR = hauteur du graphique
    NomORD = titre de l'ordonnée
    NomABS = titre de l'abscisse
    NOMGRAPH = Titre du graphique
    FeuilleSRC = nom de la feuille où se trouvent les données
    ColF = colonne de fin des données à récupérer
    NbSERIE = nombre de serie à récupérer
    numeroLgDeb = numéro de la ligne où commence les séries

    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
    28
    Sub Macro_Creation_Graph(ByVal FeuilleDEST As String, ByVal DROITE As Integer, ByVal HAUT As Integer, ByVal LARGEUR As Integer, ByVal HAUTEUR As Integer, ByVal NomORD As String, ByVal NomABS As String, ByVal NomGRAPH As String, ByVal FeuilleSRC As String, ByVal ColF As Long, ByVal NbSERIE As Integer, ByVal numeroLgDeb As Integer)
    With ThisWorkbook.Worksheets(FeuilleDEST)
        .Activate
        .Shapes.AddChart(xlColumnStacked, DROITE, HAUT, LARGEUR, HAUTEUR).Select
    End With
    j = numeroLgDeb
    With ThisWorkbook.Worksheets(FeuilleSRC)
        For i = 1 To NbSERIE
            ActiveChart.SeriesCollection.NewSeries
            ActiveChart.SeriesCollection(i).Name = .Range(.Cells(j, 1), .Cells(j, 1)).Value
            ActiveChart.SeriesCollection(i).Values = .Range(.Cells(j, 4), .Cells(j, ColF))
            j = j + 1
            If i = NbSERIE Then ActiveChart.SeriesCollection(i).XValues = .Range(.Cells(1, 4), .Cells(1, ColF))
        Next i
    End With
    With ActiveChart
        .SetElement (msoElementDataLabelCenter)
        .SetElement (msoElementChartTitleAboveChart)
        .SetElement (msoElementPrimaryValueAxisTitleVertical)
        .SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
        .ChartTitle.Text = NomGRAPH
        .Axes(xlValue, xlPrimary).AxisTitle.Text = NomORD
        .Axes(xlCategory, xlPrimary).AxisTitle.Text = NomABS
        .Axes(xlCategory, xlPrimary).TickLabels.Orientation = 90
        .Legend.Format.TextFrame2.TextRange.Font.Size = 8
        .Legend.Height = 128
    End With
    End Sub

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Citation Envoyé par Novice72 Voir le message
    PS: mon problème est avant tout de créer un graphique avec des données d'une autre feuille. Ensuite, bien sûr, je recommence autant de fois qu'il y a d'élèves...
    As tu essayé via l'enregistreur de macro?
    Sur un exemple bidon j'obtiens ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlColumnClustered
        ActiveChart.SetSourceData Source:=Sheets("test").Columns("A:B")
    Tu devrais pouvoir l'adapter pour ton problème.

    ps: je me suis mal fait comprendre sur l'autre fil, je ne peux ouvrir aucune piece jointe (pas que les tiennes)

  6. #6
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut
    Pour halaster08,

    Oui j'ai déjà essayé de créer ma macro vié l'éditeur mais lorsque je sélectionne mes cellules, que je fais insertion graphiques, il est impossible d'aller sur l'autre feuille.
    Je suis obligé de créer le graphique sur la feuille des données. Je dois ensuite faire un copier-coller puis je dois à nouveau supprimer le graphique qui est resté sur la feuille des données..........

    Bref pas simple même en regardant le code ( qui permettrait d'éviter le premier collage du graphique - qui est au mauvais endroit - pour ensuite ne plus avoir à le supprimer )...

    Merci

    Novice72

    Merci bboy-eazy,

    Je vais essayer ton code et je te redis..

    Encore Merci.


    NOVICE72

  7. #7
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Par défaut
    (re)bonjour bboy-eazy,

    Comment fais-tu ne serais que pour lancer ta macro. En effet, lorsque j'ai ( sur ce forum ) appris comment transformer des chiffres ( 0, 1 et 2 ) en disques ( Rouge ,Orange et vert ), j'ai eu une fonction pour lancer la macro et une pour la création.

    Ici j'ai essayé d'adapté le code mais je ne comprends pas tout.

    exemple : FeuilleDESK doit-il être remplacé par "Résultats par élève" ( ce qui est le nom de ma feuille source )
    FeuilleSRC doit-il être remplacé pas "Graphiques" ( ce qui est le nom de ma feuille destination )


    Comment sont sélectionnées mes cellules sources ( premier graphique cellules (A1:C6) )
    mais après, ça doit être plus compliqué puisque les cellules dépendent de 2 plages ( deuxième graphique cellules (A1:B6) puis (D1:D6) )

    Merci d'avance.




    NOVICE72

  8. #8
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Le code que j'ai mis dans mon post précédent crée un graphique sur la feuille active et prends les données sur une autre feuille. Il ne te reste qu'a changer le nom de la feuille et la plage

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 25/05/2014, 18h00
  2. [OpenOffice][Tableur] [Macro] Comment copier une plage de données d'une Feuille "A" vers la Feuille Active
    Par clduick dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 03/02/2012, 11h39
  3. [XL-2003] Créer une fonction avec plage de données
    Par coklin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/12/2009, 13h01
  4. Visualiser une plage de données d'une Feuille
    Par BERRACHED SAID dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/01/2009, 12h30
  5. Réponses: 2
    Dernier message: 06/02/2007, 15h05

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