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

Excel Discussion :

Graphique avec Excel VBA


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Par défaut Graphique avec Excel VBA
    Bonjour,

    J'ai crée dans un fichier excel un bouton de commande qui va me créer un graphique en automatique après être allé chercher des valeurs dans une plage de données variable.

    Tout fonctionne parfaitement sauf quand il ny' a aucune valeur dans mon tableau et là, c'est le drame, un message d'erreur 'la méthode range de l'objet worksheets a échoué'.

    J'aimerais juste que dans les conditions où les 1eres cases sont vides, il aille à la fin de la procédure et qu'il s'arrête là ou alors qu'il affiche un graphe vide.

    Quelqu'un peut-il m'aider?
    Merci d'avance pour votre aide.

    Voici le code que j'ai mis dans le bouton de commande:
    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
    Private Sub CommandButton3_Click()
    Dim MyGraph                     As ChartObject
    Dim cLigne As Integer
    Dim cColonne As Integer
    Dim ligneTableau As Integer
     
    cLigne = 1
    cColonne = 2
    ligneTableau = 4
     
        'Créer Tableau et initialiser compteurs
     
        Call UnprotectMe
     
        Do
            ligneTableau = ligneTableau + 2
     
            If (Cells(ligneTableau, 2).Value <> "") And (Cells(ligneTableau, 22).Value <> "") Then
                Cells(cLigne, 40) = Cells(ligneTableau, 2)
                Cells(cLigne, 41) = Cells(ligneTableau, 34)
                cLigne = cLigne + 1
            End If
     
        Loop Until (ligneTableau = 32)
     
     
        'Créer Graphe
        'Range("AN1:AO" & cLigne - 1).Select
        On Error Resume Next
        Set MyGraph = ActiveSheet.ChartObjects(1)
        On Error GoTo 0
        If MyGraph Is Nothing Then
            Charts.Add
            ActiveChart.ChartType = xlLineMarkers
            ActiveChart.SetSourceData Source:=Me.Range("AN1:AO" & cLigne - 1), PlotBy _
                :=xlColumns
            ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
            With ActiveChart
                .HasTitle = True
                .ChartTitle.Characters.Text = "Gradient de cadence entre machine"
                .Axes(xlCategory, xlPrimary).HasTitle = True
                .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Machine"
                .Axes(xlValue, xlPrimary).HasTitle = True
                .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Cadence (pces/min)"
            End With
            ActiveChart.HasLegend = False
     
            ActiveSheet.ChartObjects(1).Left = Range("I36").Left
            ActiveSheet.ChartObjects(1).Top = Range("I36").Top
        Else
            MyGraph.Activate
            ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("AN1:AO" & cLigne - 1), PlotBy:=xlColumns
        End If
    '    Windows("Feuille_VGRAPH_Groupe_v6.xls").SmallScroll Down:=-15
    '    Windows("Feuille_VGRAPH_Groupe_v6.xls").LargeScroll ToRight:=-1
        ActiveWindow.Visible = False
        Range("D34").Select
     
        Call ProtectMe
    End Sub

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Slt, bienvenue sur le forum,
    peux-etre en mettant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If (Cells(ligneTableau, 2).Value <> "") And (Cells(ligneTableau, 22).Value <> "") Then
                Cells(cLigne, 40) = Cells(ligneTableau, 2)
                Cells(cLigne, 41) = Cells(ligneTableau, 34)
                cLigne = cLigne + 1
     
     Else
      msgbox "Certaines cellules sont vides!"
     'je sors de la procédure 
     goto fin
     End If
    et ajoute ceci ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fin:
         Call ProtectMe
    End Sub
    j'ai pas testé.
    A+

Discussions similaires

  1. Tracer des graphiques à la chaîne avec Excel/VBA
    Par mouletabille dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/08/2008, 10h39
  2. exploiter fichier SAP avec Excel VBA
    Par toto92 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/03/2008, 13h27
  3. erreur de conexion a une base de donneés access avec excel(vba)
    Par leo13 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 27/11/2006, 09h09
  4. stat avec excel vba
    Par winieloursonaub dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/09/2006, 19h44
  5. probleme de graphique avec excel
    Par calimero91 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2006, 12h17

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