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 :

Modifier les données des abcisses par défaut lors de la création d'un graph "nuage de points"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Novembre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement de composants

    Informations forums :
    Inscription : Novembre 2020
    Messages : 3
    Par défaut Modifier les données des abcisses par défaut lors de la création d'un graph "nuage de points"
    Bonjour à tous!

    C'est la toute première fois que je code en VBA et voilà maintenant 2 jours que je m'arrahce les cheveux sur un problème :
    Je souhaiterais créer un graphique nuage de point à partir d'un tableu de donnés qui peux varier

    Lorsque je crée mon graphique les données des abcisses sont choisi par défaut par excel alors que je souhaiterais définir une de mes colonnes (dans mon cas la première colonne) comme données des abcisses.

    Voici mon code pour le moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Macro()
    Range("b1", Range("b1").End(xlDown).End(xlToRight)).Select
     ActiveSheet.Shapes.AddChart.Select
     ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
     ActiveChart.Location Where:=xlLocationAsNewSheet
    End Sub
    Merci d'avance pour votre aide !

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Sans avoir un aperçu de la disposition de vos données, difficile de répondre.

    Pouvez-vous déposer un extrait de votre tableau pour que nous puissions trouver une solution?

    Cdlt

  3. #3
    Candidat au Club
    Femme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Novembre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement de composants

    Informations forums :
    Inscription : Novembre 2020
    Messages : 3
    Par défaut
    Citation Envoyé par ARTURO83 Voir le message
    Bonjour,

    Sans avoir un aperçu de la disposition de vos données, difficile de répondre.

    Pouvez-vous déposer un extrait de votre tableau pour que nous puissions trouver une solution?

    Cdlt
    Voici un extrait de mon tableau. Le nombre de lignet de colonne peut varier. Je souhaiterais réaliser une macro qui puisse s'adapter à cela.

    Classeur1_exemple.xlsx

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Si j'ai bien compris, votre macro pour insérer un nouveau graphique (pour un nuage de points, ne pas prendre la ligne d'entête)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Graphique()
        Sheets("Feuil1").Select
        Range("b2", Range("b2").End(xlDown).End(xlToRight)).Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
        ActiveChart.Location Where:=xlLocationAsNewSheet
    End Sub
    Pour permuter les axes ordonnées abscisses, clic droit sur le graphique, "Sélectionner les données", Cliquer sur "Changer de ligne ou de colonne"

    Cdlt

  5. #5
    Candidat au Club
    Femme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Novembre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement de composants

    Informations forums :
    Inscription : Novembre 2020
    Messages : 3
    Par défaut
    Au temps pour moi je souhaite bien prendre en compte la ligne d'entête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Graphique()
        Sheets("Feuil1").Select
        Range("a1", Range("a1").End(xlDown).End(xlToRight)).Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
        ActiveChart.Location Where:=xlLocationAsNewSheet
    End Sub
    Lorsque j'exécute cette macro sur mon fichier excel, j'arrive bien à crée un nouveau graphique, sauf que j'aimerais que la première colonne soir considéré comme les données des abscisses mais ce n'est pas le cas. Excel attribue de facon arbitraire des données d'abscisses numéroté "1,2,3....." alors que je souhaiterais appliquer l'abscisse de la colonne A numéroté "0; 0,5; 1; 1,5...."

  6. #6
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Voici avec graphique en ligne à la place de nuage de points (le rendu est le même)
    Je n'arrive pas à orienter le texte de l'axe des abscisses pour le rendre plus lisible, si vous avez une version d'excel plus récente que la mienne, essayez de le faire avec l'aide de l'enregistreur de macros et copiez le résultat à la suite du code.
    Pour une question de lisibilité, en fin de code, je modifie les échelles de l'axe des ordonnées, vous pouvez mettre ces lignes en remarques si cela ne vous convient pas.

    Le fichier
    Pièce jointe 583514

    Le code
    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
    Sub Graphique()
        Dim DerLig As Long, DerCol As Long
        Dim Valeur_Min As Double, Valeur_Max As Double
        Application.ScreenUpdating = False
        Sheets("Feuil1").Select
        Range("C1") = ""
        Range("C1", Range("A1").End(xlDown).End(xlToRight)).Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlLine
        ActiveChart.Location Where:=xlLocationAsNewSheet
     
        'Ajout de la série "Temps"
        DerLig = Sheets("Feuil1").Range("A1").End(xlDown).Row
        DerCol = Sheets("Feuil1").Range("A1").End(xlToRight).Column
        Sheets("Feuil1").Range("C1") = "Temps"
        ActiveChart.PlotArea.Select
        ActiveChart.SeriesCollection.NewSeries
        ActiveChart.SeriesCollection(22).Name = "=""Temps"""
        ActiveChart.SeriesCollection(22).Values = "=Feuil1!C2:C" & Sheets("Feuil1").Range("A1").End(xlDown).Row
     
        'Réduction des axes pour une meilleure lisibilité (facultatif)
        Valeur_Min = Application.Min(Sheets("Feuil1").Cells(2, "D"), Sheets("Feuil1").Cells(DerLig, DerCol))
        Valeur_Max = Application.Max(Sheets("Feuil1").Cells(2, "D"), Sheets("Feuil1").Cells(DerLig, DerCol))
        ActiveChart.Axes(xlValue).MinimumScale = Round(Valeur_Min - 15, 0)
        ActiveChart.Axes(xlValue).MaximumScale = Round(Valeur_Max + 15, 0)
    End Sub
    Cdlt

Discussions similaires

  1. Modifier les options de collage par défaut?
    Par Zantetsu dans le forum Excel
    Réponses: 2
    Dernier message: 21/01/2009, 07h48
  2. Modifier les pages d'erreur par défaut de tomcat
    Par PaladinFr dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 19/09/2008, 14h27
  3. [CKEditor] Modifier le style des balises par défaut
    Par MartiW dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 01/06/2008, 18h41
  4. Réponses: 2
    Dernier message: 05/11/2007, 14h23
  5. Réponses: 0
    Dernier message: 02/11/2007, 21h34

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