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 :

[VBA-Excel]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 29
    Points
    29
    Par défaut [VBA-Excel]
    Bonjour à tous !!
    J'ai un pitit problème avec une macro que j'ai fait sous excel ! En effet cette macro a pour but de définir une plage source pour un graphique. En effet car lorque je supprime les lignes de la plage il y a de nouvelles valeurs (celle qui été en dessous) qui remontent et remplace les anciennes valeurs, alors j'ai fait la macro que voilà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro1()
        ActiveChart.ChartArea.Select
        ActiveChart.SetSourceData Source:=Sheets("Nombre OS").Range("A1:B6"), PlotBy _
            :=xlRows
    End Sub
    Seulement lors de son exécution après la suppression des lignes ca me met une faute sur ActiveChart.ChartArea.Select et ca me dit:
    Variable objet ou variable de bloc With non définie
    Quelqu'un a une idée pour régler ce problème et déjà est-ce possible de faire ce que je souhaite ?

  2. #2
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 35
    Points : 38
    Points
    38
    Par défaut
    Le problème pourrait se trouver dans l'utilisation de ActiveChart. Tu pourrais plutôt utiliser la collection Charts de l'objet mais dans ce cas tu dois connaître l'index du graphique ça va donner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub Macro1() 
        Dim Index as integer
     
        Index = 1
        Charts(Index).ChartArea.Select 
        Charts(Index).SetSourceData Source:=Sheets("Nombre OS").Range _
        ("A1:B6"), PlotBy     :=xlRows 
    End Sub
    En supposant que index = 1.
    (Il se peut aussi, mais ça c'est mois sur, que le graphique soit supprimer à la suppression des lignes.)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 29
    Points
    29
    Par défaut
    Ca ne marche pas ! il me dit la methode Select de la classe ChartArea a echoué !
    Mais qu'est ce que tu entend par index (je n'y conné pas grand chose en VBA) et ensuite le graphique n'est pas supprimé puisqu'il est toujours sur l'autre page (oui, en effet le graphique est sur une autre page) !

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 29
    Points
    29
    Par défaut
    Ok ca marche !! Merci !! il suffisait de supprimer une ligne ce qui donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Macro1() 
        Dim Index as integer 
        Index = 1     
        Charts(Index).SetSourceData Source:=Sheets("Nombre OS").Range _ 
        ("A1:B6"), PlotBy     :=xlRows 
    End Sub
    Mais ca seré quand meme cool de ta part de m'expliquer ce que c'est qu'un index !
    Merci d'avance !

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 35
    Points : 38
    Points
    38
    Par défaut
    Mais qu'est ce que tu entend par index (je n'y conné pas grand chose en VBA)
    L'index s'utilise avec une collection (collection=ensemble de n'importe quoi, ici d'objet) comme Charts pour acceder aux objets de la collection il peut être alphanumérique ou numérique (entier). Dans notre cas ici il est numérique. Il représente, je crois, l'ordre d'insertion du graphique dans le classeur dc si tu n'as qu'1 graphique dans le classeur l'index de ce graphique sera 1.

    Ca ne marche pas ! il me dit la methode Select de la classe ChartArea a echoué !
    Je pense que tu doit d'abord sélectionner la feuille sur laquelle se trouve le graphique. ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub Macro1() 
        Feuil2.Select
        Charts(1).ChartArea.Select 
        Charts(1).SetSourceData Source:=Sheets("Nombre OS").Range _ 
        ("A1:B6"), PlotBy     :=xlRows 
    End Sub
    En supposant la feuille sur laquelle se trouve le graphique s'appelle Feuil2

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 35
    Points : 38
    Points
    38
    Par défaut
    dsl. j'ai repondu avant de lire ton dernier post. si ça marche alors c'est ok!

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 59
    Points : 29
    Points
    29
    Par défaut
    ok merci Rely pour ton explication sur l'index ca me sera fort utile car je vais avoir plusieur graph à mettre à jour !
    et pis en fait merci pour tout !

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

Discussions similaires

  1. [VBA-Excel] Plagen avec Cells
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/01/2005, 10h49
  2. [VBA-Excel,VB6,Fichier texte]enregistrer un classeur excel..
    Par Tarul dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2005, 13h09
  3. [vba-excel] Le temps de fermeture trop court ?
    Par Damsou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2005, 10h03
  4. [VBA EXCEL] Réduire/Agrandir UserForms
    Par Fench dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/11/2003, 16h02
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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