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 :

Bug dabs Macro pour seuil vertical dans un nuage de points [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Septembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Septembre 2015
    Messages : 3
    Par défaut Bug dabs Macro pour seuil vertical dans un nuage de points
    Bonjour,

    J'ai un souci de macro dans excel 2010. Je pars d'un nuage de points sur lequel je veux ajouter des seuils verticaux. J'ai trouvé sur des forums qu'on y arrivait en utilisant les barres d'erreurs. J'arrive effectivement au résultat voulu. Seul souci, quand je veux réutiliser la macro créée par l'enregistrement en direct de l'enchaînement des instructions, ça bug.
    En pratique, la macro arrive à me créer les points et le débuts des barres d'erreur mais pas moyen qu'elles se tracent jusqu'en bas ni de supprimer les barres horizontales qui ne me servent à rien....

    Quelqu'un pour aider un petit novice en VBA ?

    Merci d'avance et bonne journée.

  2. #2
    Invité
    Invité(e)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Septembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Septembre 2015
    Messages : 3
    Par défaut
    Bonjour et merci rdurupt...

    J'ai regardé ton lien mais je crois qu'il va me falloir quelques explications.... je ne comprends pas comment me servir de tout ça.....

    Bon vendredi

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    le problème avec l’enregistreur de macros, c'est qu'il enregistre toues les action que tu fais et ne peux restituer que c'est même actions!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sheets("Feuil2").select
    range("A2").select
    selection.value=10
    si tu analyse code tu te rends compte que tu peux fusionner les select! sheets("Feuil2").range("A2").value=10!

    l’enregistreur de macro est un bon didacticiel mais mérite une analyse du résultat pour optimiser le code.

    quand tu fait un graphique avec l'enregistreur de macro tu génère le graphique dans sa totalité et l'analyse ce complique.il faut enregistre plusieurs macro, une qui permet de créer le graph; une qui sélectionne la source; une qui sélectionne le type de graph (nuage de points;etc...

    ainsi tu analyse que de petites macro!

    le module de classe est une boite à outils, qui liste toutes ces petites macro! il n'y a rien a modifier, accessoirement rajouter des action manquante sous forme de sub.

    vas dans vba. dans le menu insertion->module de classe:Nom : Sans titre.png
Affichages : 219
Taille : 15,2 Ko Nom : Sans titre.png
Affichages : 286
Taille : 6,5 Ko

    affiche le fenêtre des propriétés Nom : Sans titre.png
Affichages : 181
Taille : 5,9 Ko

    Nom : Sans titre.png
Affichages : 208
Taille : 15,2 Ko

    renomme ta classe Nom : Sans titre.png
Affichages : 178
Taille : 11,0 Ko

    et copie colle ce code:
    Code Module de classe clsGraphe : 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    Dim Shap As Shape
    Enum style
        ExlColumnClustered = xlColumnClustered
        ExlColumnStacked = xlColumnStacked
        ExlColumnStacked100 = xlColumnStacked100
        Exl3DColumnClustered = xl3DColumnClustered
        Exl3DColumnStacked = xl3DColumnStacked
        Exl3DColumnStacked100 = xl3DColumnStacked100
        Exl3DColumn = xl3DColumn
        ExlCylinderColClustered = xlCylinderColClustered
        ExlCylinderColStacked = xlCylinderColStacked
        ExlCylinderColStacked100 = xlCylinderColStacked100
        ExlCylinderCol = xlCylinderCol
        ExlConeColClustered = xlConeColClustered
        ExlConeColStacked = xlConeColStacked
        ExlConeColStacked100 = xlConeColStacked100
        ExlConeCol = xlConeCol
        ExlPyramidColClustered = xlPyramidColClustered
        ExlPyramidColStacked = xlPyramidColStacked
        ExlPyramidColStacked100 = xlPyramidColStacked100
        ExlPyramidCol = xlPyramidCol
        ExlLine = xlLine
        ExlLineStacked = xlLineStacked
        ExlLineStacked100 = xlLineStacked100
        ExlLineMarkers = xlLineMarkers
        ExlLineMarkersStacked = xlLineMarkersStacked
        ExlLineMarkersStacked100 = xlLineMarkersStacked100
        Exl3DLine = xl3DLine
        ExlPie = xlPie
        ExlPieExploded = xlPieExploded
        ExlPieOfPie = xlPieOfPie
        ExlBarOfPie = xlBarOfPie
        Exl3DPie = xl3DPie
        Exl3DPieExplodede = xl3DPieExploded
        ExlBarClustered = xlBarClustered
        ExlBarStacked = xlBarStacked
        ExlBarStacked100 = xlBarStacked100
        Exl3DBarClustered = xl3DBarClustered
        Exl3DBarStacked = xl3DBarStacked
        Exl3DBarStacked100 = xl3DBarStacked100
        ExlCylinderBarClustered = xlCylinderBarClustered
        ExlCylinderBarStacked = xlCylinderBarStacked
        ExlCylinderBarStacked100 = xlCylinderBarStacked100
        ExlConeBarClustered = xlConeBarClustered
        ExlConeBarStacked = xlConeBarStacked
        ExlConeBarStacked100 = xlConeBarStacked100
        ExlPyramidBarClustered = xlPyramidBarClustered
        ExlPyramidBarStacked = xlPyramidBarStacked
        ExlPyramidBarStacked100 = xlPyramidBarStacked100
        ExlArea = xlArea
        ExlAreaStacked = xlAreaStacked
        ExlAreaStacked100 = xlAreaStacked100
        Exl3DArea = xl3DArea
        Exl3DAreaStacked = xl3DAreaStacked
        Exl3DAreaStacked100 = xl3DAreaStacked100
        ExlXYScatter = xlXYScatter
        ExlXYScatterSmooth = xlXYScatterSmooth
        ExlXYScatterSmoothNoMarkers = xlXYScatterSmoothNoMarkers
        ExlXYScatterLines = xlXYScatterLines
        ExlXYScatterLinesNoMarkers = xlXYScatterLinesNoMarkers
        ExlDoughnut = xlDoughnut
        ExlDoughnutExploded = xlDoughnutExploded
        ExlBubble = xlBubble
        ExlBubble3DEffect = xlBubble3DEffect
        ExlRadar = xlRadar
        ExlRadarMarkers = xlRadarMarkers
        ExlRadarFilled = xlRadarFilled
        ExlSurface = xlSurface
        ExlSurfaceWireframe = xlSurfaceWireframe
        ExlSurfaceTopView = xlSurfaceTopView
        ExlSurfaceTopViewWireframe = xlSurfaceTopViewWireframe
    End Enum
     
    Public Sub Graphique_New(Feuille As Worksheet)
    Set Shap = Feuille.Shapes.AddChart
    End Sub
    Public Sub Graphique_Source(Myrange As Range)
     Shap.Chart.SetSourceData Myrange
    End Sub
    Public Sub Graphique_Style(MyStyle As style)
     Shap.Chart.ChartType = MyStyle
    End Sub
    Public Sub Graphique_NewSeries(Myrange As Range)
     Shap.Chart.SeriesCollection.NewSeries.Values = Myrange
    End Sub
    Public Sub Graphique_NewSeries_String(Page As String)
     Shap.Chart.SeriesCollection.NewSeries.Values = Page
    End Sub
    Public Sub Graphique_SeriesCollection()
     
     Shap.Chart.SeriesCollection(1).ApplyDataLabels
    End Sub
     
    Public Sub Graphique_Taille(Hauteur As Integer, Largeur As Integer)
     Shap.Height = Hauteur
     Shap.Width = Largeur
    End Sub
    Public Sub Graphique_Position(X As Integer, Y As Integer)
     Shap.Top = X
     Shap.Left = Y
    End Sub
    Public Sub SaveAs_Image(Feuille As Worksheet, Non As String, fichier As String)
    For Each MyObject In Feuille.Shapes
        If MyObject.Name = Non Then
            MyObject.Chart.Export Filename:=fichier, FilterName:="GIF"
            Exit Sub
        End If
    Next
    End Sub
    Public Sub Delete(Feuille As Worksheet, Non As String)
    For Each MyObject In Feuille.Shapes
        If MyObject.Name = Non Then MyObject.Delete: Exit Sub
    Next
    End Sub
    Public Sub Nouveau(Feuille As Worksheet, Non As String)
    Set Shap = Feuille.Shapes.AddChart
    Shap.Name = Non
    End Sub
    maintenant ce code montre l'utilisation du module de classe
    Code Module Standard : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub test()
     
    Dim grph As New clsGraphe
    grph.Delete Sheets("Feuil2"), "Grp" 'ici on suprime un graph existant
    grph.Nouveau Sheets("Feuil2"), "Grp" 'ici on ajoute un neouveau graph
    grph.Graphique_Source ActiveSheet.UsedRange 'ici on donne la source du graph
    grph.Graphique_Style ExlPieExploded 'ici on choisi le type de graph c'est là qu'on va difinir nuage de poits!
    grph.Graphique_NewSeries ActiveSheet.Range("E1") 'ici on ajoute un courb
    grph.Graphique_NewSeries_String "=Feuil1!$B$3,Feuil1!$D$3,Feuil1!$F$3,Feuil1!$H$3,Feuil1!$J$3,Feuil1!$L$3"
    grph.Graphique_NewSeries_String "=Feuil1!$C$3,Feuil1!$E$3,Feuil1!$G$3,Feuil1!$I$3,Feuil1!$K$3,Feuil1!$M$3"
    grph.Graphique_SeriesCollection
    grph.Graphique_Taille 200, 300 'ici on défini la taille du graph 
    grph.Graphique_Position 50, 100 'ici la positon dur graph
    grph.SaveAs_Image Sheets("Feuil2"), "Grp", "C:\Users\Robert\Desktop\Grah.jpg" ici on enregistre le graph dans un fichier image
    End Sub
    voici le type de graphique que tu peu faire, nuage de points est dedans!
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    Enum style
        ExlColumnClustered = xlColumnClustered
        ExlColumnStacked = xlColumnStacked
        ExlColumnStacked100 = xlColumnStacked100
        Exl3DColumnClustered = xl3DColumnClustered
        Exl3DColumnStacked = xl3DColumnStacked
        Exl3DColumnStacked100 = xl3DColumnStacked100
        Exl3DColumn = xl3DColumn
        ExlCylinderColClustered = xlCylinderColClustered
        ExlCylinderColStacked = xlCylinderColStacked
        ExlCylinderColStacked100 = xlCylinderColStacked100
        ExlCylinderCol = xlCylinderCol
        ExlConeColClustered = xlConeColClustered
        ExlConeColStacked = xlConeColStacked
        ExlConeColStacked100 = xlConeColStacked100
        ExlConeCol = xlConeCol
        ExlPyramidColClustered = xlPyramidColClustered
        ExlPyramidColStacked = xlPyramidColStacked
        ExlPyramidColStacked100 = xlPyramidColStacked100
        ExlPyramidCol = xlPyramidCol
        ExlLine = xlLine
        ExlLineStacked = xlLineStacked
        ExlLineStacked100 = xlLineStacked100
        ExlLineMarkers = xlLineMarkers
        ExlLineMarkersStacked = xlLineMarkersStacked
        ExlLineMarkersStacked100 = xlLineMarkersStacked100
        Exl3DLine = xl3DLine
        ExlPie = xlPie
        ExlPieExploded = xlPieExploded
        ExlPieOfPie = xlPieOfPie
        ExlBarOfPie = xlBarOfPie
        Exl3DPie = xl3DPie
        Exl3DPieExplodede = xl3DPieExploded
        ExlBarClustered = xlBarClustered
        ExlBarStacked = xlBarStacked
        ExlBarStacked100 = xlBarStacked100
        Exl3DBarClustered = xl3DBarClustered
        Exl3DBarStacked = xl3DBarStacked
        Exl3DBarStacked100 = xl3DBarStacked100
        ExlCylinderBarClustered = xlCylinderBarClustered
        ExlCylinderBarStacked = xlCylinderBarStacked
        ExlCylinderBarStacked100 = xlCylinderBarStacked100
        ExlConeBarClustered = xlConeBarClustered
        ExlConeBarStacked = xlConeBarStacked
        ExlConeBarStacked100 = xlConeBarStacked100
        ExlPyramidBarClustered = xlPyramidBarClustered
        ExlPyramidBarStacked = xlPyramidBarStacked
        ExlPyramidBarStacked100 = xlPyramidBarStacked100
        ExlArea = xlArea
        ExlAreaStacked = xlAreaStacked
        ExlAreaStacked100 = xlAreaStacked100
        Exl3DArea = xl3DArea
        Exl3DAreaStacked = xl3DAreaStacked
        Exl3DAreaStacked100 = xl3DAreaStacked100
        ExlXYScatter = xlXYScatter
        ExlXYScatterSmooth = xlXYScatterSmooth
        ExlXYScatterSmoothNoMarkers = xlXYScatterSmoothNoMarkers
        ExlXYScatterLines = xlXYScatterLines
        ExlXYScatterLinesNoMarkers = xlXYScatterLinesNoMarkers
        ExlDoughnut = xlDoughnut
        ExlDoughnutExploded = xlDoughnutExploded
        ExlBubble = xlBubble
        ExlBubble3DEffect = xlBubble3DEffect
        ExlRadar = xlRadar
        ExlRadarMarkers = xlRadarMarkers
        ExlRadarFilled = xlRadarFilled
        ExlSurface = xlSurface
        ExlSurfaceWireframe = xlSurfaceWireframe
        ExlSurfaceTopView = xlSurfaceTopView
        ExlSurfaceTopViewWireframe = xlSurfaceTopViewWireframe
    End Enum

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Septembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Septembre 2015
    Messages : 3
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Bonjour,
    le problème avec l’enregistreur de macros, c'est qu'il enregistre toues les action que tu fais et ne peux restituer que c'est même actions!
    End Enum[/CODE]
    Re bonjour,

    Merci de tous ces conseils, je comprends un peu mieux d'où vient mon problème. Par contre, tous les détails techniques que tu me donnes sont beacuoup trop compliqués pour moi... Je ne vois toujours pas comment utiliser ça pratiquement.
    J'ai suivi une partie de tes conseils en faisant des petites macros intermédiaires et ça a l'air de marcher avec une autre macro que j'ai trouvée.... Je vais essayer de me débrouiller comme ça.

    Encore merci
    Belle journée

  6. #6
    Invité
    Invité(e)
    Par défaut
    comme tu veux!

    ce qui est important c'est ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test() 
    Dim grph As New clsGraphe
    grph.Delete Sheets("Feuil2"), "Grp" 'ici on suprime un graph existant
    grph.Nouveau Sheets("Feuil2"), "Grp" 'ici on ajoute un neouveau graph
    grph.Graphique_Source ActiveSheet.UsedRange 'ici on donne la source du graph
    grph.Graphique_Style ExlPieExploded 'ici on choisi le type de graph c'est là qu'on va difinir nuage de poits!
    grph.Graphique_NewSeries ActiveSheet.Range("E1") 'ici on ajoute un courb
    grph.Graphique_NewSeries_String "=Feuil1!$B$3,Feuil1!$D$3,Feuil1!$F$3,Feuil1!$H$3,Feuil1!$J$3,Feuil1!$L$3"
    grph.Graphique_NewSeries_String "=Feuil1!$C$3,Feuil1!$E$3,Feuil1!$G$3,Feuil1!$I$3,Feuil1!$K$3,Feuil1!$M$3"
    grph.Graphique_SeriesCollection
    grph.Graphique_Taille 200, 300 'ici on défini la taille du graph 
    grph.Graphique_Position 50, 100 'ici la positon dur graph
    grph.SaveAs_Image Sheets("Feuil2"), "Grp", "C:\Users\Robert\Desktop\Grah.jpg" ici on enregistre le graph dans un fichier image
    End Sub
    pour le reste rien d'important c'est juste un parcours fléché! mais comme tu veux!

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

Discussions similaires

  1. [PPT-2010] Macro pour une musique dans ppt 2010.
    Par ptitmanu49 dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 12/09/2013, 15h26
  2. [XL-2003] Problème macro pour appeler valeur dans des tableaux
    Par phnguyen dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/07/2012, 12h24
  3. Réponses: 0
    Dernier message: 23/03/2012, 10h59
  4. macro pour creer objet dans userform
    Par redstoff dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/02/2011, 16h44
  5. [PPT-2002] macro pour afficher texte dans diagramme
    Par bubus31 dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 20/10/2009, 22h11

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